Método IWDFObject::AssignContext (wudfddi.h)

[Advertencia: UMDF 2 es la versión más reciente de UMDF y sustituye a UMDF 1. Todos los controladores UMDF nuevos deben escribirse con UMDF 2. No se agregan nuevas características a UMDF 1 y hay compatibilidad limitada con UMDF 1 en versiones más recientes de Windows 10. Los controladores universales de Windows deben usar UMDF 2. Para obtener más información, consulta Introducción con UMDF.

El método AssignContext registra un contexto y una función de devolución de llamada de limpieza proporcionada por el controlador para el objeto.

Sintaxis

HRESULT AssignContext(
  [in, optional] __drv_aliasesMem IObjectCleanup *pCleanupCallback,
  [in, optional] __drv_aliasesMem void           *pContext
);

Parámetros

[in, optional] pCleanupCallback

Puntero a la interfaz IObjectCleanup que contiene la función de devolución de llamada de limpieza, que realiza operaciones de limpieza para el objeto si se convierte en no válida. Este parámetro es opcional. El controlador puede pasar NULL si el controlador no requiere notificación cuando se limpia el objeto.

[in, optional] pContext

Puntero al contexto que se va a registrar. NULL es un contexto válido.

Valor devuelto

AssignContext devuelve S_OK si la operación se realiza correctamente. De lo contrario, este método devuelve uno de los códigos de error definidos en Winerror.h.

Comentarios

Un controlador llama a AssignContext para registrar un contexto y solicitar una notificación cuando el objeto deja de ser válido. En una llamada a AssignContext , el controlador pasa un puntero a la interfaz IObjectCleanup en el parámetro pCleanupCallback para registrar IObjectCleanup. Tenga en cuenta que el marco contiene internamente una referencia a la interfaz IObjectCleanup proporcionada mientras el objeto es válido. Cuando el objeto deja de ser válido, el marco llama al método IObjectCleanup::OnCleanup para notificar al controlador. El marco libera automáticamente la referencia al IObjectCleanup proporcionado después de llamar a IObjectCleanup::OnCleanup.

En un momento dado, solo puede existir un contexto asociado a cada instancia de objeto. Se produce un error en los intentos de registrar contextos adicionales.

Un contexto solo se puede asociar a un objeto que está en un estado válido. Por ejemplo, se produce un error al intentar asociar un contexto a un objeto que se encuentra en proceso de eliminación.

Dado que el contexto no es una interfaz del Modelo de objetos componentes (COM), el controlador no debe tratar el contexto como tal. Por ejemplo, el controlador no puede llamar al método AddRef en el contexto.

El método IWDFObject::RetrieveContext se puede usar para recuperar el contexto que se registró anteriormente a través de AssignContext.

Ejemplos

Para obtener un ejemplo de código sobre cómo usar el método AssignContext , vea IWDFIoTarget::FormatRequestForWrite.

Requisitos

Requisito Value
Finalización del soporte técnico No disponible en UMDF 2.0 y versiones posteriores.
Plataforma de destino Escritorio
Versión mínima de UMDF 1.5
Encabezado wudfddi.h (incluya Wudfddi.h)
Archivo DLL WUDFx.dll

Consulte también

IObjectCleanup

IObjectCleanup::OnCleanup

IWDFObject

IWDFObject::RetrieveContext