Compartir a través de


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
UPNP_E_DUPLICATE_SERVICE_ID
Existe un identificador de servicio duplicado para un servicio dentro del mismo dispositivo primario.
UPNP_E_INVALID_DESCRIPTION
La descripción del dispositivo no es válida.
UPNP_E_INVALID_ICON
Hay un error en el elemento icon de la descripción del dispositivo.
UPNP_E_INVALID_SERVICE
Hay un error en un elemento de servicio en la descripción del dispositivo.
UPNP_E_REQUIRED_ELEMENT_ERROR
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

Consulte también

IUPnPRegistrar

IUPnPRegistrar::UnregisterDevice

IUPnPReregistrar