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 を含む) |
関連項目
ExInitializeWorkItem の
ExQueueWorkItem を する
IoAllocateWorkItem の
IoQueueWorkItem の