Compartir a través de


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.

Nota Si bstrResourcePath es demasiado largo, este método devuelve el valor 0x80070002.
 
Código devuelto Descripción
UPNP_E_DUPLICATE_NOT_ALLOWED
Existe un elemento duplicado.
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

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

Consulte también

IUPnPRegistrar

IUPnPRegistrar::UnregisterDevice

IUPnPReregistrar