Partilhar via


WDF_DECLARE_CONTEXT_TYPE_WITH_NAME macro

[Aplica-se a KMDF e UMDF]

A macro WDF_DECLARE_CONTEXT_TYPE_WITH_NAME cria um método de acessador com um nome especificado para o espaço de contexto específico do objeto de um driver.

Sintaxe

void WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(
    _contexttype,
    _castingfunction
);

Parâmetros

_contexttype
O nome do tipo de estrutura de uma estrutura definida pelo driver que descreve o conteúdo do espaço de contexto de um objeto.

_castingfunction
Um nome de rotina em linguagem C. A macro usa esse nome como o nome para o método de acessador que ele cria para o espaço de contexto do objeto.

Valor de retorno

Essa macro não retorna um valor.

Observações

Para obter mais informações sobre como usar essa macro, consulte Framework Object Context Space.

Exemplos

O exemplo de código a seguir define uma estrutura de contexto (MY_REQUEST_CONTEXT) para um objeto de solicitação. Em seguida, o exemplo invoca a macro WDF_DECLARE_CONTEXT_TYPE_WITH_NAME para registrar a estrutura e especificar que o método de acessador de contexto será nomeado 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)

O exemplo de código a seguir cria um objeto request e, em seguida, usa o RequestGetMyContext método de acessador para obter um ponteiro para o espaço de contexto do 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);

Requerimentos

Plataforma de destino

Universal

Versão mínima do KMDF

1.0

Versão mínima UMDF

2.0

Cabeçalho

Wdfobject.h (inclui Wdf.h)

Ver também

WdfObjectGetTypedContext

WDF_DECLARE_CONTEXT_TYPE