Метод IPortableDeviceManager::GetPrivateDevices (portabledeviceapi.h)
Метод GetPrivateDevices извлекает список частных портативных устройств, подключенных к компьютеру. Эти частные устройства доступны только через приложение, предназначенное для этих конкретных устройств.
Синтаксис
HRESULT GetPrivateDevices(
[in, out] LPWSTR *pPnPDeviceIDs,
[in, out] DWORD *pcPnPDeviceIDs
);
Параметры
[in, out] pPnPDeviceIDs
Выделенный вызывающим объектом массив строковых указателей, содержащий Plug and Play имена всех подключенных устройств. Чтобы узнать необходимый размер для этого параметра, сначала вызовите этот метод с параметром NULL и pcPnPDeviceID , равным нулю, а затем выделите буфер в соответствии со значением, извлеченным pcPnPDeviceID. Эти имена могут использоваться IPortableDevice::Open для создания подключения к устройству.
[in, out] pcPnPDeviceIDs
Количество значений, которые могут храниться в идентификаторах pPnPDevice. В выходных данных — указатель на количество устройств, фактически записанных в идентификаторы pPnPDevice.
Возвращаемое значение
Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
|
По крайней мере один из обязательных аргументов был пустым указателем. |
|
Буфер pPnPDeviceIDs слишком мал для хранения всех запрошенных значений, но значения pcPnPDeviceID были записаны в pPnPDeviceID. |
Комментарии
Чтобы написать приложение, которое взаимодействует с частным устройством, необходимо иметь представление о пользовательских функциональных возможностях, предоставляемых определенным драйвером устройства. Описание этой функции должно быть получено у изготовителя устройства.
Список устройств создается при создании экземпляра диспетчера устройств; он не обновляется при подключении и отключении устройств. Чтобы обновить список подключенных устройств, вызовите RefreshDeviceList.
API выделяет память для каждой строки, на которую указывает массив pPnPDeviceIDs . Когда приложение больше не нуждается в этих строках, оно должно выполнить итерацию по этому массиву и освободить связанную память, вызвав функцию CoTaskMemFree .
Частное устройство может неправильно реагировать на стандартные вызовы функций переносимых устройств Windows, которые выполняют перечисление объектов, передачу ресурсов, получение возможностей устройства и т. д.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | portabledeviceapi.h |
Библиотека | PortableDeviceGUIDs.lib |