Método IUPnPRegistrar::RegisterRunningDevice (upnphost.h)
El método RegisterRunningDevice registra un dispositivo en ejecución 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. La publicación de este dispositivo no se conserva en los arranques del sistema.
Sintaxis
HRESULT RegisterRunningDevice(
[in] BSTR bstrXMLDesc,
[in] IUnknown *punkDeviceControl,
[in] BSTR bstrInitString,
[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] punkDeviceControl
Especifica el puntero IUnknown al objeto de control de dispositivo del dispositivo.
[in] bstrInitString
Identifica la cadena de inicialización específica del dispositivo. Esta cadena se pasa posteriormente a IUPnPDeviceControl::Initialize.
[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.
[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 elemento duplicado. |
|
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
El cliente que invoca este método debe ser capaz de suplantar LocalService para completar el procesamiento de este método.
El método IUPnPDeviceControl::Initialize se invoca cuando se recibe la primera solicitud de control o evento.
Use el identificador devuelto en pbstrDeviceIdentifier al invocar UnregisterDevice o IUPnPReregistrar::ReregisterRunningDevice.
El registro de este dispositivo no persiste en los arranques del sistema.
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 |