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


Макрос WdfObjectGetTypedContext

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

Макрос WdfObjectGetTypedContext возвращает указатель на контекстное пространство объекта.

Синтаксис

PVOID WdfObjectGetTypedContext(
    Handle,
    Type
);

Параметры

Дескриптор
Дескриптор объекта платформы.

Тип
Имя символа определяемой драйвером структуры, описывающей контекстное пространство объекта.

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

WdfObjectGetTypedContext возвращает указатель на контекстное пространство указанного объекта.

Комментарии

Макрос WdfObjectGetTypedContext можно использовать для получения указателя на контекстное пространство любого объекта платформы. Используйте этот макрос в качестве альтернативы вызову метода доступа к контексту для конкретного объекта, созданного макросом WDF_DECLARE_CONTEXT_TYPE или макросом WDF_DECLARE_CONTEXT_TYPE_WITH_NAME . Обратите внимание, что при использовании WdfObjectGetTypedContext для объявления контекста объекта по-прежнему необходимо использовать WDF_DECLARE_CONTEXT_TYPE или WDF_DECLARE_CONTEXT_TYPE_WITH_NAME.

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

Примеры

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

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

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 = WdfObjectGetTypedContext(
                                      Request,
                                      MY_REQUEST_CONTEXT
                                      );

Требования

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

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

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

1,0

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

2,0

Заголовок

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

Библиотека

Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)

IRQL

Любой уровень

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

WDF_DECLARE_CONTEXT_TYPE

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME