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


макрос WDF_DECLARE_CONTEXT_TYPE_WITH_NAME

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

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

Синтаксис

void WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(
    _contexttype,
    _castingfunction
);

Параметры

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

_castingfunction
Имя подпрограммы языка C. Макрос использует это имя в качестве имени метода доступа, создаваемого для контекстного пространства объекта.

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

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

Комментарии

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

Примеры

В следующем примере кода определяется структура контекста (MY_REQUEST_CONTEXT) для объекта запроса. Затем в примере вызывается макрос WDF_DECLARE_CONTEXT_TYPE_WITH_NAME, чтобы зарегистрировать структуру и указать, что метод доступа контекста будет называться 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)

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

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);

Требования

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

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

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

1,0

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

2,0

Заголовок

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

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

WdfObjectGetTypedContext

WDF_DECLARE_CONTEXT_TYPE