Compartir a través de


macro de 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
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.

Comentarios

Para obtener más información sobre el uso de esta macro, vea Espacio de contexto de objeto de marco.

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, en el ejemplo se 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

Encabezado

Wdfobject.h (incluir Wdf.h)

Consulte también

WdfObjectGetTypedContext

WDF_DECLARE_CONTEXT_TYPE