将 I/O 请求发送到常规 I/O 目标
驱动程序可以同步或异步方式将 I/O 请求发送到常规 I/O 目标。
如果驱动程序以同步方式发送 I/O 请求,则驱动程序线程一次发送一个请求。 线程等待每个请求完成,然后才发送下一个请求。 此过程比异步发送 I/O 请求更简单。 如果驱动程序不发送多个请求,并且系统或设备性能未降低,则在驱动程序等待每个 I/O 请求时,驱动程序可以同步发送 I/O 请求。
如果驱动程序异步发送 I/O 请求,驱动程序线程会在请求准备好发送后立即发送每个请求,而无需等待以前发送的请求完成。 如果驱动程序必须在短时间内处理许多 I/O 请求,则可能无法允许驱动程序在发送下一个请求之前等待每个请求完成。 否则,可能会丢失数据或降低驱动程序设备和整个系统的性能。
框架的 I/O 目标对象提供驱动程序可以调用的两组方法:一组用于 同步发送 I/O 请求 ,另一组用于 异步发送 I/O 请求。
对于其中每个方法,必须提供请求对象和一些缓冲区空间。 可以使用这些方法转发驱动程序在其 I/O 队列之一中收到的请求,或创建并发送新请求。