SW_DEVICE_CREATE_CALLBACK回调函数 (swdevice.h)
在注册表中为设备提供支持,并允许调用方使用 hSwDevice 句柄调用软件设备 API 函数。
语法
SW_DEVICE_CREATE_CALLBACK SwDeviceCreateCallback;
void SwDeviceCreateCallback(
[in] HSWDEVICE hSwDevice,
[in] HRESULT CreateResult,
[in, optional] PVOID pContext,
[in, optional] PCWSTR pszDeviceInstanceId
)
{...}
参数
[in] hSwDevice
软件设备的句柄。
[in] CreateResult
一个 HRESULT,指示软件设备的枚举是否成功。
[in, optional] pContext
客户端应用选择性地提供给 SwDeviceCreate 的上下文。
[in, optional] pszDeviceInstanceId
PnP 分配给设备的设备实例 ID。
返回值
无
备注
在 PnP 枚举设备后,操作系统调用 SW_DEVICE_CREATE_CALLBACK 回调函数。 调用回调函数后,设备在注册表中具有支持,并且可以使用 hSwDevice 句柄调用软件设备 API 函数。 还可以使用适用于所创建设备的其他 API。
设备的 PnP 枚举是设备经历的第一步。 对设备进行 PnP 枚举后,设备仅具有注册表支持,并且你可以针对设备设置属性。 仅仅因为 PnP 枚举了设备,设备尚未启动,并且设备尚未注册或启用接口的驱动程序。 在许多情况下,如果应用想要使用设备,我们建议应用等待设备接口到达。
注意 回调函数为创建的设备提供设备实例 ID。 建议软件设备 API 的调用方不要尝试猜测或自行构造设备实例 ID;始终使用回调函数提供的值。
在 Windows 8 中,不能在回调函数中调用 SwDeviceClose。 这样做会导致死锁。 请注意释放引用计数对象,该对象在析构函数运行时将调用 SwDeviceClose 。 在 Windows 8.1 中,此限制被取消,你可以在回调函数内调用 SwDeviceClose。
始终检查传递给 CreateResult 的 HRESULT,以确保 PnP 能够枚举设备。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 |
最低受支持的服务器 | Windows Server 2012 |
目标平台 | 桌面 |
标头 | swdevice.h |