Compartir a través de


macro WDF_DECLARE_CONTEXT_TYPE_WITH_NAME

[Se aplica a KMDF y UMDF]

La macro WDF_DECLARE_CONTEXT_TYPE_WITH_NAME crea un método de descriptor de acceso con un nombre especificado para el espacio de contexto específico del objeto de un controlador.

Sintaxis

void WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(
    _contexttype,
    _castingfunction
);

Parámetros

_contexttype
El nombre del tipo de estructura de una estructura definida por el controlador que describe el contenido del espacio de contexto de un objeto.

_castingfunction
Nombre de rutina del lenguaje C. La macro usa este nombre como nombre para el método de descriptor de acceso que crea para el espacio de contexto del objeto.

Valor devuelto

Esta macro no devuelve un valor.

Observaciones

Para obtener más información sobre el uso de esta macro, vea Framework Object Context Space.

Ejemplos

En el ejemplo de código siguiente se define una estructura de contexto (MY_REQUEST_CONTEXT) para un objeto de solicitud. A continuación, el ejemplo invoca la macro WDF_DECLARE_CONTEXT_TYPE_WITH_NAME para registrar la estructura y especificar que el método de descriptor de acceso de contexto se denominará RequestGetMyContext.

typedef struct _MY_REQUEST_CONTEXT {
  LIST_ENTRY ListEntry;
  WDFMEMORY Memory;
} MY_REQUEST_CONTEXT, *PMY_REQUEST_CONTEXT;

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(MY_REQUEST_CONTEXT, RequestGetMyContext)

En el ejemplo de código siguiente se crea un objeto de solicitud y, a continuación, se usa el método de descriptor de acceso requestGetMyContext para obtener un puntero al espacio de contexto del objeto.

WDFREQUEST Request;
WDF_OBJECT_ATTRIBUTES MyRequestObjectAttributes;
PMY_REQUEST_CONTEXT pMyContext;

WDF_OBJECT_ATTRIBUTES_INIT(&MyRequestObjectAttributes);
WDF_OBJECT_ATTRIBUTES_SET_CONTEXT_TYPE(
                                       &MyRequestObjectAttributes,
                                       MY_REQUEST_CONTEXT
                                       );
status = WdfRequestCreate(
                          &MyRequestObjectAttributes
                          NULL,
                          &Request
                          );

if (!NT_SUCCESS(status)) {
    return status;
}

pMyContext = RequestGetMyContext(Request);

Requisitos

Plataforma de destino

universal

Versión mínima de KMDF

1.0

Versión mínima de UMDF

2.0

Cabecera

Wdfobject.h (incluya Wdf.h)

Consulte también

WdfObjectGetTypedContext

WDF_DECLARE_CONTEXT_TYPE