次の方法で共有


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 は、指定した作業項目がデバイス オブジェクトまたはデバイス スタックに関連付けられていない場合にのみ使用できます。 他のすべての場合、ドライバーは IoAllocateWorkItemIoFreeWorkItemIoQueueWorkItem を使用する必要があります。これは、これらのルーチンによってのみ、指定された作業項目に関連付けられているデバイス オブジェクトが、作業項目が処理されるまで使用可能なままになります。

要件

要件
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h、Fltkernel.h を含む)

こちらもご覧ください

ExInitializeWorkItem

ExQueueWorkItem

IoAllocateWorkItem

IoFreeWorkItem

IoQueueWorkItem