Макрос 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.
Дополнительные сведения об этих макросах см. в пространстве контекста объекта Framework.
Примеры
В следующем примере кода определяется структура контекста (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 (include Wdf.h) |
Библиотека |
Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL |
Любой уровень |