EVT_WDF_DRIVER_DEVICE_ADD回呼函式 (wdfdriver.h)
[適用於 KMDF 和 UMDF]
驅動程式的 EvtDriverDeviceAdd 事件回呼函式會在隨插即用 (PnP) 管理員報告裝置是否存在時執行裝置初始化作業。
語法
EVT_WDF_DRIVER_DEVICE_ADD EvtWdfDriverDeviceAdd;
NTSTATUS EvtWdfDriverDeviceAdd(
[in] WDFDRIVER Driver,
[in, out] PWDFDEVICE_INIT DeviceInit
)
{...}
參數
[in] Driver
表示驅動程式之架構驅動程序物件的句柄。
[in, out] DeviceInit
架構配置的 WDFDEVICE_INIT 結構的指標。
返回值
如果作業成功,EvtDriverDeviceAdd 回呼函式必須傳回STATUS_SUCCESS。 否則,此回呼函式必須傳回 Ntstatus.h 中定義的其中一個錯誤狀態值,。 如需詳細資訊,請參閱下列一節。
備註
每個支援 PnP 裝置的架構驅動程式都必須提供 EvtDriverDeviceAdd 回呼函式。 驅動程式必須先將回呼函式的位址放在其 WDF_DRIVER_CONFIG 結構中,才能呼叫 WdfDriverCreate。
架構會在總線驅動程式偵測到硬體標識元符合驅動程式支援硬體標識碼的裝置之後,呼叫驅動程式的 EvtDriverDeviceAdd 回呼函式。 您可以藉由提供 INF 檔案來指定驅動程式支援的硬體識別碼,作系統會在第一次將其中一部裝置連線到電腦時用來安裝驅動程式。 如需系統如何使用 INF 檔案和硬體識別碼的詳細資訊,請參閱 安裝程式如何選取驅動程式。
驅動程式的 EvtDriverDeviceAdd 回呼函式通常至少會執行下列一些初始化作業:
-
建立架構裝置物件 來代表裝置。
-
建立 I/O 佇列,讓驅動程式可以接收 I/O 要求。
-
建立裝置介面 應用程式用來與裝置通訊。
-
建立驅動程式定義的介面 其他驅動程式可以使用。
- 初始化 Windows Management Instrumentation (WMI) 支援。
-
如果驅動程式處理裝置中斷,請建立中斷物件。
-
如果驅動程式處理 DMA 作業,啟用直接記憶體存取 (DMA) 交易。
如果驅動程式的 EvtDriverDeviceAdd 回呼函式會建立裝置物件,但不會傳回STATUS_SUCCESS,架構會刪除裝置物件及其子裝置。
如果函式驅動程式的 EvtDriverDeviceAdd 回呼函式未傳回STATUS_SUCCESS,I/O 管理員就不會建置裝置的裝置堆疊。
如果篩選驅動程式的 EvtDriverDeviceAdd 回呼函式不會傳回STATUS_SUCCESS,架構會將傳回值轉換為STATUS_SUCCESS,而 I/O 管理員會建置沒有篩選驅動程式的裝置堆疊。
需求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
標題 | wdfdriver.h (包括 Wdf.h) |
IRQL | PASSIVE_LEVEL |