KeInitializeQueue 関数 (ntifs.h)
KeInitializeQueue ルーチンは、スレッドがエントリを待機できるキュー オブジェクトを初期化します。
構文
void KeInitializeQueue(
[out] PRKQUEUE Queue,
[in] ULONG Count
);
パラメーター
[out] Queue
呼び出し元が非ページ プールに常駐ストレージを提供する必要がある KQUEUE 構造体へのポインター。 この構造体は次のように定義されます。
typedef struct _KQUEUE {
DISPATCHER_HEADER Header;
LIST_ENTRY EntryListHead;
ULONG CurrentCount;
ULONG MaximumCount;
LIST_ENTRY ThreadListHead;
} KQUEUE, *PKQUEUE, *RESTRICTED_POINTER PRKQUEUE;
メンバー | 意味 |
---|---|
ヘッダー | キュー ヘッダー。 |
EntryListHead | キュー内の最初のエントリへのポインター。 |
CurrentCount を する | キューで待機しているスレッドの現在の数。 |
MaximumCount の | キューが待機を満たすことができる同時実行スレッドの最大数。 |
ThreadListHead の | スレッド リスト内の最初のエントリへのポインター。 |
[in] Count
キュー オブジェクトで待機するスレッドの最大数を同時に満たすことができます。 このパラメーターを指定しない場合は、マシン内のプロセッサの数が使用されます。
戻り値
何一つ
備考
通常、KeInitializeQueue の呼び出し元は、そのエントリをキューに入れ、デキューするための専用スレッドのセットも作成します。 このような呼び出し元は、明示的な Count を指定して、キュー オブジェクトで待機する専用スレッドの数が多くなりすぎないようにすることができます。
KeInitializeQueue キュー オブジェクトの初期シグナル状態を Not Signaled に設定します。
ドライバーで管理される内部キューの使用の詳細については、「Driver-Managed IRP キューの」を参照してください。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
ヘッダー | ntifs.h (Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
関連項目
ExAllocatePoolWithTag の
IoAllocateWorkItem の
IoQueueWorkItem の
PsCreateSystemThread の