IoInitializeWorkItem 関数 (wdm.h)

IoInitializeWorkItem ルーチンは、呼び出し元が既に割り当てた作業項目を初期化します。

構文

void IoInitializeWorkItem(
  [in] PVOID        IoObject,
  [in] PIO_WORKITEM IoWorkItem
);

パラメーター

[in] IoObject

呼び出し元のドライバー オブジェクトまたは呼び出し元のデバイス オブジェクトへのポインター。 呼び出し元が後で作業項目を IoQueueWorkItem に渡す場合、 IoObject は デバイス オブジェクトを指す必要があります。

[in] IoWorkItem

初期化する IO_WORKITEM 構造体へのポインター。

戻り値

なし

解説

ドライバーは、 IO_WORKITEM 構造体に独自のストレージを割り当て、 IoInitializeWorkItem を呼び出して初期化します。 非ページ プールからメモリを割り当てる必要があります。 IO_WORKITEM構造体を保持するために必要なバイト数を確認するには、IoSizeofWorkItem を呼び出します。

IoInitializeWorkItem によって初期化されるIO_WORKITEM構造体は、解放される前に IoUninitializeWorkItem によって初期化されていない必要があります

関連ルーチン IoAllocateWorkItem は、作業項目の割り当てと初期化の両方を行います。 割り当てと初期化を 1 つの呼び出しに組み合わせることにより、 IoAllocateWorkItem は、初期化のみを行う IoInitializeWorkItem よりも一部のドライバーが使用する方が便利な場合があります。 ただし、 IoInitializeWorkItem は、以前に割り当てられたストレージ内の作業項目を初期化する必要があるドライバーで必要です。

たとえば、ドライバーは、作業項目のプールに記憶域のブロックを割り当てる可能性があります。 ドライバーは 、IoInitializeWorkItem を呼び出して、作業項目がプールから割り当てられるときに作業項目を初期化できます。 ドライバーは 、IoUninitializeWorkItem を呼び出して、プールに返されたときに作業項目を初期化解除できます。 プールの初期ストレージ割り当て中に、ドライバーは IoSizeofWorkitem を呼び出して、各作業項目に割り当てる記憶域の量を決定できます。

作業項目の詳細については、「 システム ワーカー スレッド」を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL 任意のレベル

こちらもご覧ください

IO_WORKITEM

IoAllocateWorkItem

IoQueueWorkItem

IoQueueWorkItemEx

IoSizeofWorkItem

IoUninitializeWorkItem