RemoveHeadList ルーチンは、LIST_ENTRY構造体の二重にリンクされたリストの先頭からエントリを削除します。
構文
PLIST_ENTRY RemoveHeadList(
[in, out] PLIST_ENTRY ListHead
);
パラメーター
[in, out] ListHead
リスト ヘッダーとして機能する LIST_ENTRY 構造体へのポインター。
戻り値
RemoveHeadList は、 リストから削除されたエントリへのポインターを返します。 リストが空の場合、 RemoveHeadList は ListHead を返 します。
注釈
RemoveHeadList は、リスト内の 2 番目のエントリを指すように ListHead-Flink> を設定して、リストから最初のエントリを削除します。 ルーチンは、2 番目のエントリの Blink メンバーを ListHead に設定します。 リストが空の場合、これは実質的に no-op です。
二重リンク リストを実装するときにこのルーチンを使用する方法の詳細については、「Singly および Doubly Linked Lists」を参照してください。
RemoveHeadList の呼び出し元は、任意の IRQL で実行できます。 IRQL >= DISPATCH_LEVELで RemoveHeadList が呼び出された場合、ListHead のストレージとリスト エントリは常駐である必要があります。