次の方法で共有


KeRundownQueue 関数 (ntifs.h)

KeRundownQueue ルーチンはキュー オブジェクトをクリーンアップし、キューに入ったエントリをフラッシュします。

構文

PLIST_ENTRY KeRundownQueue(
  [in, out] PRKQUEUE Queue
);

パラメーター

[in, out] Queue

呼び出し元が非ページ プールに常駐ストレージを提供する初期化されたキュー オブジェクトへのポインター。

戻り値

キューが空の場合、 KeRundownQueueNULL を返します。それ以外の場合は、キュー内の最初のエントリのアドレスを返します。

注釈

ファイル システムは、キュー オブジェクトを解放または再利用する前に、キューからすべてのエントリを破棄するために KeRundownQueue を呼び出します。

キュー オブジェクトを再利用する場合、キュー オブジェクトを再利用する前に再初期化するには、呼び出し元が KeRundownQueue を呼び出した後に KeInitializeQueue を呼び出す必要があります。

KeRundownQueue は、破棄されるキューに登録されたエントリの数に関する情報を返しません。

Windows 7 以降、 KeRundownQueue は、キュー オブジェクトで現在待機しているスレッドをSTATUS_ABANDONEDでスリープ解除します。 この関数から戻ると、このキューで待機しようとする将来のスレッドは、すぐにSTATUS_ABANDONEDで失敗します。

Windows 7 より前の KeRundownQueue は、キューが実行されたときに待機中のスレッドをウェイクしませんでした。 これらの OS バージョンでスレッドを永続的に待機したままにする可能性を回避するために、キュー オブジェクトで待機しているスレッドがある場合は、キューに対して KeRundownQueue を呼び出さないでください。

ドライバーで管理される内部キューの使用の詳細については、「 Driver-Managed Queues」を参照してください。

要件

要件
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

KeInitializeQueue

KeRemoveQueue