必要的分派常式
大部分驅動程式都必須處理下列 Dispatch 常式:
-
IRP_MJ_PNP 指出涉及 PnP 裝置辨識、硬體設定或資源配置的要求。 這類要求通常會從 PnP 管理員或緊密結合的較高層級驅動程式傳送至設備磁碟機。
-
IRP_MJ_POWER 表示與裝置或系統電源狀態相關的要求。 這類要求會由電源管理員或緊密結合的較高層級驅動程式傳送至設備磁碟機。
-
IRP_MJ_CREATE 表示使用者模式保護的子系統可能代表應用程式或子系統特定的驅動程式,要求與目標裝置物件相關聯的檔案物件控制碼,或較高層級的驅動程式連接到目標裝置物件或將裝置物件附加至目標裝置物件。
-
IRP_MJ_CLOSE 表示與目標裝置物件相關聯之檔案物件的最後一個控制碼已經關閉並釋放。 所有 I/O 要求都已完成或取消,因此檔案物件指標沒有未完成的參考。
-
IRP_MJ_READ 指出將資料從基礎實體裝置傳輸到系統的 I/O 要求。
-
IRP_MJ_WRITE 指出將資料從系統傳輸到基礎實體裝置的 I/O 要求。
-
IRP_MJ_DEVICE_CONTROL 指出要求,其中包含指定裝置類型特定作業的系統定義裝置類型特定 I/O 控制項程式碼。 較高層級的驅動程式會將這些 IRP 傳遞給其基礎設備磁碟機,這通常會藉由存取裝置來處理要求。
-
IRP_MJ_INTERNAL_DEVICE_CONTROL 表示傳送至設備磁碟機的要求,在大部分情況下,來自緊密結合的較高層級驅動程式,通常具有私下定義的驅動程式特定和裝置類型特定或裝置特定 I/O 控制程式碼,要求裝置類型特定或裝置特定作業。
只有特定種類的驅動程式才能處理系統定義的內部裝置 I/O 控制要求,包括特定 SCSI 驅動程式、鍵盤或滑鼠設備磁碟機,以及與系統提供的驅動程式交互操作的平行驅動程式。
-
IRP_MJ_SYSTEM_CONTROL 是用來指定驅動程式的 WMI 要求。 如需 WMI 的詳細資訊,請參閱 Windows Management Instrumentation。
驅動程式必須提供的分派常式會根據基礎實體裝置的類型和功能而有所不同。 如需驅動程式必須處理的 IRP 主要函式程式碼的裝置類型特定資訊,請參閱 Windows 驅動程式套件 (WDK) 中的裝置類型特定檔。