共用方式為


使用 IoCompletion 常式

以 IRP 特定為基礎來監視較高層級驅動程式如何執行特定要求,可以有一或多個 IoCompletion 常式。 配置 IRP 以將要求傳送至較低驅動程式的較高層級驅動程式必須具有 IoCompletion 常式。

最高層級或中繼驅動程式的 DispatchReadDispatchWrite 常式很可能設定 IRP 的 IoCompletion 常式,因為較低層級的驅動程式必須以非同步方式處理傳輸要求。

驅動程式堆疊中的最低層級驅動程式無法註冊 IoCompletion 常式。

驅動程式通常不會為與同步 I/O 作業相關聯的 IRP 註冊 IoCompletion 常式。 例如,較高層級驅動程式的 DispatchDeviceControl 常式可以使用 IoBuildDeviceIoControlRequest來配置 IRP。 在此情況下,分派常式通常不會註冊 IoCompletion 常式,因為裝置控制要求通常會以同步方式處理。 相反地,驅動程式可以配置和初始化事件物件,而且其 DispatchDeviceControl 常式可以等候在驅動程式配置 IRP 上傳送時初始化事件。 通常,較高層級的驅動程式不會針對以IoBuildSynchronousFsdRequest配置的 IRP 註冊IoCompletion常式,原因相同。

本節包含下列主題:

註冊 IoCompletion 常式

實作 IoCompletion 常式