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 | 任意のレベル |
こちらもご覧ください
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示