Método IUPnPRegistrar::RegisterDevice (upnphost.h)
El método RegisterDevice registra un dispositivo con el host del dispositivo. El host del dispositivo almacena la información del dispositivo. A continuación, el host del dispositivo devuelve un identificador de dispositivo y publica y anuncia el dispositivo en la red.
Sintaxis
HRESULT RegisterDevice(
[in] BSTR bstrXMLDesc,
[in] BSTR bstrProgIDDeviceControlClass,
[in] BSTR bstrInitString,
[in] BSTR bstrContainerId,
[in] BSTR bstrResourcePath,
[in] long nLifeTime,
[out] BSTR *pbstrDeviceIdentifier
);
Parámetros
[in] bstrXMLDesc
Especifica la plantilla de descripción del dispositivo XML del dispositivo que se va a registrar.
[in] bstrProgIDDeviceControlClass
Especifica el ProgID de un objeto de control de dispositivo que implementa la interfaz IUPnPDeviceControl . Esta interfaz debe ser un servidor COM (CLSCTX_INPROC_SERVER) en proceso y debe ser accesible para LocalService.
[in] bstrInitString
Identifica la cadena de inicialización específica del dispositivo. Esta cadena se pasa posteriormente a IUPnPDeviceControl::Initialize.
[in] bstrContainerId
Especifica una cadena que identifica el grupo de procesos al que pertenece el dispositivo. Todos los dispositivos con el mismo identificador de contenedor se encuentran en el mismo proceso.
[in] bstrResourcePath
Especifica la ubicación del directorio de recursos del dispositivo. Este directorio de recursos contiene los archivos de icono y las descripciones de servicio que se especifican en la plantilla de descripción del dispositivo bstrXMLDesc. El directorio de recursos también puede contener los archivos de presentación. Sin embargo, esto es opcional.
[in] nLifeTime
Especifica la duración del anuncio del dispositivo, en segundos. Una vez expirado el tiempo de espera, se actualizan los anuncios. Si especifica cero, se usa el valor predeterminado de 1800 (30 minutos). El valor mínimo permitido es 900 (15 minutos); Si especifica algo menor que 900, se devuelve un error.
[out] pbstrDeviceIdentifier
Recibe el identificador del dispositivo. Use este identificador al anular el registro o volver a registrar el dispositivo. Guarde este id. de dispositivo; Debe usarlo al llamar a UnregisterDevice.
Valor devuelto
Si el método se realiza correctamente, el valor devuelto es S_OK. De lo contrario, el método devuelve uno de los códigos de error COM definidos en WinError.h o uno de los siguientes códigos de error específicos de UPnP.
Código devuelto | Descripción |
---|---|
|
Existe un identificador de servicio duplicado para un servicio dentro del mismo dispositivo primario. |
|
La descripción del dispositivo no es válida. |
|
Hay un error en el elemento icon de la descripción del dispositivo. |
|
Hay un error en un elemento de servicio en la descripción del dispositivo. |
|
Falta un elemento necesario. |
Comentarios
Se crea una instancia de un dispositivo y se invoca IUPnPDeviceControl::Initialize cuando se recibe una solicitud de control o evento.
Use el identificador devuelto en pbstrDeviceIdentifier al invocar UnregisterDevice o IUPnPReregistrar::ReregisterDevice.
Entre los errores comunes que pueden producirse al invocar esta función se incluyen:
- No se encontró el objeto COM necesario.
- No hay acceso al objeto COM para LocalService.
- Interfaces COM subordinadas.
- Los límites de descripción XML (consulte Crear una descripción del dispositivo).
- Las variables evented no devolvieron códigos de operación correcta y el dispositivo se cerró.
- La descripción del servicio no era válida. Use validatesd.exe para asegurarse de que las descripciones del servicio sean válidas.
- El servicio no implementó IUPnPEventSource y no devolvió un código correcto a IUPnPEventSource::Advise y el dispositivo se cerró.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | No se admite ninguno |
Plataforma de destino | Windows |
Encabezado | upnphost.h |
Archivo DLL | Upnphost.dll |