структура WORK_QUEUE_ITEM (wdm.h)
Структура WORK_QUEUE_ITEM используется для отправки рабочих элементов в системную рабочую очередь.
Предупреждение
Используйте эту структуру с особой осторожностью. См. следующий раздел Примечаний .
Синтаксис
typedef struct _WORK_QUEUE_ITEM {
LIST_ENTRY List;
PWORKER_THREAD_ROUTINE WorkerRoutine;
__volatile PVOID Parameter;
} WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM;
Члены
List
Структура списка с удвоением связей. Эта структура используется для добавления рабочего элемента в системную рабочую очередь.
WorkerRoutine
Указатель на подпрограмму обратного вызова, которая обрабатывает этот рабочий элемент, когда рабочий элемент выведен из очереди. Эта подпрограмма обратного вызова объявляется следующим образом:
VOID
(*PWORKER_THREAD_ROUTINE)(
IN PVOID Parameter
);
Параметр
Указатель контекстной информации, указанный в элементе Parameter .
Parameter
Указатель на контекстные сведения, передаваемые в подпрограмму обратного вызова, указанную в элементе WorkerRoutine .
Комментарии
Чтобы инициализировать структуру WORK_QUEUE_ITEM, вызовите ExInitializeWorkItem.
Чтобы отправить инициализированный рабочий элемент в системную рабочую очередь, вызовите ExQueueWorkItem.
ExInitializeWorkItem и ExQueueWorkItem можно использовать только в тех случаях, когда указанный рабочий элемент не связан с объектом устройства или стеком устройств. Во всех остальных случаях драйверы должны использовать IoAllocateWorkItem, IoFreeWorkItem и IoQueueWorkItem, так как только эти подпрограммы гарантируют, что объект устройства, связанный с указанным рабочим элементом, остается доступным до обработки рабочего элемента.
Требования
Требование | Значение |
---|---|
Заголовок | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h) |