At this point, you know how to queue an asynchronous device I/O request, but I haven’t discussed how the device driver notifies you after the I/O request has completed.
Windows offers four different methods (briefly described in Table 10-9) for receiving I/O completion notifications, and this chapter covers all of them. The methods are shown in order of complexity, from the easiest to understand and implement (signaling a device kernel object) to the hardest to understand and implement (I/O completion ports).
Table 10-9. Methods for Receiving I/O Completion Notifications
Signaling a device kernel object
Not useful for performing multiple simultaneous I/O requests against a single device. ...