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

另请参阅

SwDeviceCreate