функция обратного вызова SW_DEVICE_CREATE_CALLBACK (swdevice.h)
Предоставляет устройству резервную копию в реестре и позволяет вызывающей стороне выполнять вызовы функций API устройства программного обеспечения с помощью дескриптора hSwDevice .
Синтаксис
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 устройству.
Возвращаемое значение
None
Remarks
Операционная система вызывает функцию обратного вызова SW_DEVICE_CREATE_CALLBACK после перечисления устройства PnP. После вызова функции обратного вызова устройство имеет резервную копию в реестре, и вызовы функций API программного устройства можно выполнить с помощью дескриптора hSwDevice . Вы также можете использовать другие API, которые работают с устройствами для созданного устройства.
Перечисление PnP устройства — это первый шаг, который выполняется устройством. После перечисления PnP устройство имеет только резервную копию реестра, и вы можете задать свойства для устройства. Только потому, что PnP перечислил устройство, устройство еще не запущено, и ни один драйвер для устройства еще не зарегистрировал или не включил интерфейсы. Во многих случаях рекомендуется, чтобы приложения ждали поступления интерфейса устройства, если они хотят использовать устройство.
В Windows 8 нельзя вызвать SwDeviceClose внутри функции обратного вызова. Это приведет к взаимоблокировки. Будьте осторожны при освобождении объекта ref counted, который будет вызывать SwDeviceClose при выполнении деструктора. В Windows 8.1 это ограничение снимается, и вы можете вызвать SwDeviceClose внутри функции обратного вызова.
Всегда проверка HRESULT, который передается в CreateResult, чтобы убедиться, что PnP смог перечислить устройство.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 |
Минимальная версия сервера | Windows Server 2012 |
Целевая платформа | Персональный компьютер |
Верхняя часть | swdevice.h |