次の方法で共有


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

IoFreeWorkItem

IoQueueWorkItem