IDriverEntry::OnDeviceAdd 方法 (wudfddi.h)

[警告: UMDF 2 是最新版本的 UMDF,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 未向 UMDF 1 添加新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅使用 UMDF 入门。]

OnDeviceAdd 方法将新设备添加到系统。

语法

HRESULT OnDeviceAdd(
  [in] IWDFDriver           *pWdfDriver,
  [in] IWDFDeviceInitialize *pWdfDeviceInit
);

参数

[in] pWdfDriver

指向新设备所属的父驱动程序对象的 IWDFDriver 接口的指针。

[in] pWdfDeviceInit

指向 IWDFDeviceInitialize 接口的指针,驱动程序使用该接口初始化新创建的设备。

返回值

如果操作成功,OnDeviceAdd 将返回S_OK。 否则,此方法返回 Winerror.h 中定义的错误代码之一。 仅当驱动程序成功调用 IWDFDriver::CreateDevice 方法来创建 框架设备对象时,驱动程序才应返回S_OK。 如果驱动程序返回错误代码,则无论驱动程序是筛选器驱动程序还是函数驱动程序,UMDF 都会拆毁整个设备堆栈。

注解

为驱动程序主机进程中加载的每个设备创建一个新的设备对象。 当新设备到达系统时,框架会调用 OnDeviceAdd 通知驱动程序到达,并在调用中传递 IWDFDriverIWDFDeviceInitialize 接口。 驱动程序可以调用 IWDFDeviceInitialize::RetrieveDevicePropertyStore 方法来查询作为设备安装的一部分提供的设备信息。 驱动程序必须调用 IWDFDriver::CreateDevice 方法来配置和创建设备。 如果驱动程序在返回S_OK之前未成功调用 IWDFDriver::CreateDevice ,则 UMDF 将确定驱动程序的行为不正确并终止主机进程。

当 UMDF 拆解设备堆栈时,其 OnDeviceAdd 方法返回S_OK的任何驱动程序随后将收到对其 IPnpCallbackHardware::OnReleaseHardware 方法的调用。

请勿在驱动程序调用 IWDFDriver::CreateDevice 之后使用 pWdfDeviceInit 参数指向的 IWDFDeviceInitialize 接口。

有关详细信息,请参阅 添加设备

要求

要求
目标平台 Windows
标头 wudfddi.h (包括 Wudfddi.h)

另请参阅

IDriverEntry

IPnpCallbackHardware::OnReleaseHardware

IWDFDeviceInitialize

IWDFDeviceInitialize::RetrieveDevicePropertyStore

IWDFDriver

IWDFDriver::CreateDevice