標準驅動程式常式需求
設計核心模式驅動程式時,請記住下列幾點:
每個驅動程式都必須有 DriverEntry 常式,以初始化全驅動程式的資料結構和資源。 I/O 管理員會在載入驅動程式時呼叫 DriverEntry 常式。
每個驅動程式至少必須有一個發送常式,以接收和處理 I/O 要求封包, (IRP) 。 每個驅動程式都必須針對驅動程式可接收的每個IRP 主要函式程式碼,將分派常式的進入點放在其DRIVER_OBJECT結構中。 驅動程式可以針對每個 IRP 主要函式程式碼有個別的分派常式,也可以有一或多個分派常式來處理數個函式程式碼。
每個 WDM 驅動程式都必須有 Unload 常式。 驅動程式必須將 Unload 常式的進入點放在驅動程式的驅動程式物件中。 PnP 驅動程式的 Unload 常式的責任很小,但非 PnP 驅動程式的卸載常式負責釋放驅動程式正在使用的任何系統資源。
每個 WDM 驅動程式都必須有 AddDevice 常式,並在 驅動程式物件的驅動程式延伸模組 中定義其進入點。 AddDevice常式負責為驅動程式控制的每個 PnP 裝置建立和初始化裝置物件。
驅動程式可以有 StartIo 常式,I/O 管理員會呼叫以啟動 I/O 作業的 IRP,驅動程式已排入系統提供的 IRP 佇列。 任何沒有 StartIo 常式的驅動程式都必須為其接收的 IRP 設定和管理內部佇列,或必須在其分派常式內完成每個 IRP。 較高層級的驅動程式可能沒有 StartIo 常式,如果他們直接從其分派常式將 IRP 傳遞至較低層級的驅動程式。
某些迷你埠驅動程式是上述需求的例外狀況。 如需迷你埠驅動程式需求的相關資訊,請參閱 Windows 驅動程式套件 (WDK) 中的裝置類型特定檔。
驅動程式是否有其他類型的標準常式取決於其功能,以及該驅動程式如何融入系統 (,例如,它是否與系統提供的驅動程式互通) 。 如需詳細資訊,請參閱 WDK 中的裝置類型特定檔。