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


макрос 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-языка. Макрос использует это имя в качестве имени метода доступа, который он создает для пространства контекста объекта.

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

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

Замечания

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

Примеры

В следующем примере кода определяется структура контекста (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 (include Wdf.h)

См. также

WdfObjectGetTypedContext

WDF_DECLARE_CONTEXT_TYPE