Compartilhar via


macro WDF_DECLARE_CONTEXT_TYPE_WITH_NAME

[Aplica-se a KMDF e UMDF]

A macro WDF_DECLARE_CONTEXT_TYPE_WITH_NAME cria um método 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 da linguagem C. A macro usa esse nome como o nome do método acessador que ele cria para o espaço de contexto do objeto.

Retornar valor

Essa macro não retorna um valor.

Comentários

Para obter mais informações sobre como usar essa macro, consulte Espaço de Contexto de Objeto da Estrutura.

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 especifica que o método 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 de solicitação e usa o método acessador RequestGetMyContext 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);

Requisitos

Plataforma de destino

Universal

Versão mínima do KMDF

1.0

Versão mínima do UMDF

2,0

parâmetro

Wdfobject.h (inclua Wdf.h)

Confira também

WdfObjectGetTypedContext

WDF_DECLARE_CONTEXT_TYPE