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 通知驱动程序到达,并在调用中传递 IWDFDriver 和 IWDFDeviceInitialize 接口。 驱动程序可以调用 IWDFDeviceInitialize::RetrieveDevicePropertyStore 方法来查询作为设备安装的一部分提供的设备信息。 驱动程序必须调用 IWDFDriver::CreateDevice 方法来配置和创建设备。 如果驱动程序在返回S_OK之前未成功调用 IWDFDriver::CreateDevice ,则 UMDF 将确定驱动程序的行为不正确并终止主机进程。
当 UMDF 拆解设备堆栈时,其 OnDeviceAdd 方法返回S_OK的任何驱动程序随后将收到对其 IPnpCallbackHardware::OnReleaseHardware 方法的调用。
请勿在驱动程序调用 IWDFDriver::CreateDevice 之后使用 pWdfDeviceInit 参数指向的 IWDFDeviceInitialize 接口。
有关详细信息,请参阅 添加设备。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | wudfddi.h (包括 Wudfddi.h) |
另请参阅
IPnpCallbackHardware::OnReleaseHardware