共用方式為


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

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

如果驅動程式的 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

另請參閱

WDFDEVICE_INIT

WDF_DRIVER_CONFIG

WdfDriverCreate