Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Метод RegisterDevice регистрирует устройство на узле устройства. Сведения об устройстве хранятся на узле устройства. Затем узел устройства возвращает идентификатор устройства, публикует и объявляет устройство в сети.
Синтаксис
HRESULT RegisterDevice(
[in] BSTR bstrXMLDesc,
[in] BSTR bstrProgIDDeviceControlClass,
[in] BSTR bstrInitString,
[in] BSTR bstrContainerId,
[in] BSTR bstrResourcePath,
[in] long nLifeTime,
[out] BSTR *pbstrDeviceIdentifier
);
Параметры
[in] bstrXMLDesc
Указывает шаблон описания XML-устройства для регистрируемого устройства.
[in] bstrProgIDDeviceControlClass
Указывает ProgID объекта управления устройством, реализующего интерфейс IUPnPDeviceControl . Этот интерфейс должен быть внутрипроцессным COM-сервером (CLSCTX_INPROC_SERVER) и должен быть доступен для LocalService.
[in] bstrInitString
Определяет строку инициализации, относяющуюся к устройству. Позже эта строка передается в IUPnPDeviceControl::Initialize.
[in] bstrContainerId
Указывает строку, определяющую группу процессов, в которую входит устройство. Все устройства с одинаковым идентификатором контейнера содержатся в одном процессе.
[in] bstrResourcePath
Указывает расположение каталога ресурсов устройства. Этот каталог ресурсов содержит файлы значков и описания служб, указанные в шаблоне описания устройства bstrXMLDesc. Каталог ресурсов также может содержать файлы презентации. Однако это необязательно.
[in] nLifeTime
Указывает время существования объявления устройства в секундах. По истечении времени ожидания объявления обновляются. Если указать ноль, используется значение по умолчанию 1800 (30 минут). Минимально допустимое значение — 900 (15 минут); Если указать значение меньше 900, возвращается ошибка.
[out] pbstrDeviceIdentifier
Получает идентификатор устройства. Используйте этот идентификатор при отмене регистрации или повторной регистрации устройства. Сохраните этот идентификатор устройства; Его необходимо использовать при вызове UnregisterDevice.
Возвращаемое значение
Если метод выполнен успешно, возвращаемое значение будет S_OK. В противном случае метод возвращает один из кодов com-ошибок, определенных в WinError.h, или один из следующих кодов ошибок, относящихся к UPnP.
| Код возврата | Описание |
|---|---|
|
Существует повторяющийся идентификатор службы для службы на том же родительском устройстве. |
|
Недопустимое описание устройства. |
|
В элементе icon описания устройства присутствует ошибка. |
|
Ошибка присутствует в элементе службы в описании устройства. |
|
Отсутствует обязательный элемент. |
Комментарии
Создается экземпляр устройства, и при получении запроса элемента управления или события вызывается IUPnPDeviceControl::Initialize .
Используйте идентификатор, возвращенный в pbstrDeviceIdentifier , при вызове UnregisterDevice или IUPnPReregistrar::ReregisterDevice.
Распространенные ошибки, которые могут возникнуть при вызове этой функции:
- Необходимый COM-объект не найден.
- Доступ к COM-объекту для LocalService отсутствует.
- Подчиненные COM-интерфейсы.
- Ограничения описания XML (см. раздел Создание описания устройства).
- Переменные события не возвращали коды успешного выполнения, и устройство было завершено.
- Недопустимое описание службы. Используйте validatesd.exe, чтобы гарантировать допустимость описаний служб.
- Служба не реализовала IUPnPEventSource и не вернула код успешного выполнения в IUPnPEventSource::Advise , и устройство было завершено.
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows XP [только классические приложения] |
| Минимальная версия сервера | Ни одна версия не поддерживается |
| Целевая платформа | Windows |
| Header | upnphost.h |
| DLL | Upnphost.dll |