Поделиться через


макрос WDF_DECLARE_CONTEXT_TYPE

[Применимо к KMDF и UMDF]

Макрос WDF_DECLARE_CONTEXT_TYPE создает имя и метод доступа для контекстного пространства конкретного объекта драйвера.

Синтаксис

void WDF_DECLARE_CONTEXT_TYPE(
    _contexttype
);

Параметры

_contexttype
Имя типа структуры структуры, определяемой драйвером, которая описывает содержимое контекстного пространства объекта.

Возвращаемое значение

Этот макрос не возвращает значение.

Комментарии

Дополнительные сведения об использовании этого макроса см. в разделе Пространство контекста объекта платформы.

Примеры

В следующем примере кода определяется структура контекста (MY_REQUEST_CONTEXT) для объекта запроса, регистрируется структура, а затем вызывается макрос WDF_DECLARE_CONTEXT_TYPE. Макрос создает метод доступа для структуры контекста и присваивает имя методу , WdfObjectGet_MY_REQUEST_CONTEXT.

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

WDF_DECLARE_CONTEXT_TYPE(MY_REQUEST_CONTEXT)

В следующем примере кода создается объект запроса, а затем используется метод доступа WdfObjectGet_MY_REQUEST_CONTEXT для получения указателя на контекстное пространство объекта.

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 = WdfObjectGet_MY_REQUEST_CONTEXT(Request);

Требования

Целевая платформа

Универсальное

Минимальная версия KMDF

1,0

Минимальная версия UMDF

2,0

Заголовок

Wdfobject.h (включая Wdf.h)

См. также раздел

WdfObjectGetTypedContext

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME