共用方式為


標準驅動程式例程需求

設計內核模式驅動程式時,請記住下列幾點:

  • 每個驅動程式都必須有 DriverEntry 例程,以初始化全驅動程式的數據結構和資源。 I/O 管理員會在載入驅動程式時呼叫 DriverEntry 例程。

  • 每個驅動程式都必須至少有一個分派常式來接收和處理 I/O 要求封包 (IRP) 。 每個驅動程式必須在其DRIVER_OBJECT結構中,針對其可以接收的每個 IRP 主要函式碼,設置分派常式的進入點。 驅動程式可以針對每個 IRP 主要函式碼有個別的分派常式,也可以有一或多個處理數個函式碼的分派常式。

  • 每個 WDM 驅動程式都必須有 卸載 常式。 驅動程式必須將 卸載 常式的進入點放在驅動程式的驅動程式物件中。 PnP 驅動程式的卸載常式的責任很少,但非 PnP 驅動程式的卸載常式會負責釋放驅動程式使用的任何系統資源。

  • 每個 WDM 驅動程式都必須有 AddDevice 常式,並在驅動程式物件的 驅動程式延伸模組 中定義其進入點。 AddDevice 常式負責為驅動程式控制的每個 PnP 裝置建立和初始化裝置物件。

  • 驅動程式可以有 StartIo 常式,I/O 管理員會呼叫該常式來啟動驅動程式已排入系統提供的 IRP 佇列的 IRP 的 I/O 作業。 任何沒有 StartIo 常式的驅動程式都必須設定和管理其接收之 IRP 的內部佇列,或必須完成其分派常式內的每個 IRP。 如果較高層級的驅動程式只是直接從其分派常式將 IRP 傳遞至較低層級的驅動程式,則可能沒有 StartIo 常式。

  • 某些迷你埠驅動程式是上述需求的例外狀況。 如需迷你埠驅動程式需求的相關資訊,請參閱 Windows 驅動程式套件 (WDK) 中的裝置類型特定檔。

  • 驅動程式是否有任何其他類型的標準常式,取決於其功能,以及驅動程式如何適合系統 (例如,它是否與系統提供的驅動程式) 互通。 如需詳細資訊,請參閱 WDK 中的裝置類型特定檔。