建立硬體通知客戶端驅動程式
本節提供一般指引,說明開發利用 Microsoft 提供的 KMDF 類別擴充功能的硬體通知用戶端驅動程式。
建立用戶端驅動程序實作的檔案,連結至 Mshwnclxstub.lib,並包含標頭 hwn.h 和 hwnclx.h。
定義必要 KMDF 和硬體通知類別延伸模組回呼函式的實例。 具體而言,您必須實作並註冊這些回呼函式,如下列範例程式代碼所示。
DRIVER_INITIALIZE DriverEntry; EVT_WDF_DRIVER_DEVICE_ADD HwnClientEvtDeviceAdd; HWN_CLIENT_INITIALIZE_DEVICE HwnClientInitializeDevice; HWN_CLIENT_UNINITIALIZE_DEVICE HwnClientUnInitializeDevice; HWN_CLIENT_QUERY_DEVICE_INFORMATION HwnClientQueryDeviceInformation; HWN_CLIENT_START_DEVICE HwnClientStartDevice; HWN_CLIENT_STOP_DEVICE HwnClientStopDevice; HWN_CLIENT_SET_STATE HwnClientSetState; HWN_CLIENT_GET_STATE HwnClientGetState;
實作 DriverEntry 例程,這是用戶端驅動程式進入點,並負責初始化。 針對硬體通知用戶端驅動程式,此函式應該處理下列事項:
呼叫 WDF_DRIVER_CONFIG_INIT 以初始化驅動程式 的WDF_DRIVER_CONFIG 結構。
呼叫 WdfDriverCreate 以建立用戶端驅動程式的架構驅動程序物件。
定義 HWN_CLIENT_REGISTRATION_PACKET的內容,包括類別延伸模組使用的回呼函式指標。 如需必要回呼函式的詳細資訊,請參閱 硬體通知參考。
呼叫 HwNRegisterClient 以向類別延伸模組註冊客戶端驅動程式。
實作 EVT_WDF_DRIVER_DEVICE_ADD 函式,此函式負責在 PnP 管理員回報裝置是否存在時執行裝置初始化作業。 針對硬體通知用戶端驅動程式,此函式應該處理下列事項:
呼叫 HwNProcessAddDevicePreDeviceCreate,以提供 KMDF 將裝置轉換成不同狀態所需的裝置準備/發行和進入/結束回呼。
呼叫 WdfDeviceCreate 以建立架構裝置物件。
呼叫 HwNProcessAddDevicePostDeviceCreate 以建立 I/O 佇列。
實作定義的 HWN_CLIENT_INITIALIZE_DEVICE 函式,此函式是由類別延伸模組呼叫,以準備硬體通知控制器以供使用。
實作定義的 HWN_CLIENT_UNINITIALIZE_DEVICE 函式,此函式是由類別延伸模組呼叫,以取消初始化硬體通知控制器。
實作定義 HWN_CLIENT_QUERY_DEVICE_INFORMATION 函式,此函式是由類別延伸模組呼叫。 此函式負責擷取硬體通知元件的屬性。
實作定義的 HWN_CLIENT_START_DEVICE 函式,此函式是由類別延伸模組呼叫。 此函式負責啟動硬體通知控制器,以及配置用戶端驅動程式的ACPI資源。
實作定義 HWN_CLIENT_STOP_DEVICE 函式,此函式是由類別延伸模組呼叫。 此函式負責停止硬體通知控制器,以及釋放用戶端驅動程式所使用的ACPI資源。
實作已定義的 HWN_CLIENT_SET_STATE,此HWN_CLIENT_SET_STATE由類別延伸模組呼叫。 此函式負責設定硬體通知元件狀態。
實作定義的 HWN_CLIENT_GET_STATE,這是由類別延伸模組所呼叫。 此函式負責取得硬體通知元件的目前值。 當輸入緩衝區為 NULL 時,表示使用者未指定特定的硬體通知狀態,此函式應該會傳回所有硬體通知元件的狀態資訊。