共用方式為


EVT_WDF_DRIVER_DEVICE_ADD回呼函式 (wdfdriver.h)

[適用於 KMDF 和 UMDF]

當 隨插即用 (PnP) 管理員回報裝置是否存在時,驅動程式的 EvtDriverDeviceAdd 事件回呼函式會執行裝置初始化作業。

語法

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 回呼函式通常會執行至少一些下列初始化作業:

某些驅動程式,特別是篩選驅動程式,可能不會為某些裝置建立裝置物件。 如果 EvtDriverDeviceAdd 回呼函式未建立裝置物件,除非發生錯誤,否則它仍必須傳回STATUS_SUCCESS。

如果驅動程式的 EvtDriverDeviceAdd 回呼函式建立裝置物件,但不會傳回STATUS_SUCCESS,架構會刪除裝置物件及其子裝置。

如果函式驅動程式的 EvtDriverDeviceAdd 回呼函式未傳回STATUS_SUCCESS,則 I/O 管理員不會為裝置建置裝置堆疊。

如果篩選驅動程式的 EvtDriverDeviceAdd 回呼函式未傳回STATUS_SUCCESS,架構會將傳回值轉換成STATUS_SUCCESS,而 I/O 管理員會在沒有篩選驅動程式的情況下建置裝置堆疊。

規格需求

需求
目標平台 Universal
最小 KMDF 版本 1.0
最低UMDF版本 2.0
標頭 wdfdriver.h (包含 Wdf.h)
IRQL PASSIVE_LEVEL

另請參閱

WDFDEVICE_INIT

WDF_DRIVER_CONFIG

WdfDriverCreate