ExInterlockedPopEntryList 関数 (wdm.h)

ExInterlockedPopEntryList ルーチンは、SINGLE_LIST_ENTRY構造体の個別にリンクされたリストの先頭からエントリアトミックに削除します。

構文

PSINGLE_LIST_ENTRY ExInterlockedPopEntryList(
  [in, out] PSINGLE_LIST_ENTRY ListHead,
  [in, out] PKSPIN_LOCK        Lock
);

パラメーター

[in, out] ListHead

リスト ヘッダーとして機能する SINGLE_LIST_ENTRY 構造体へのポインター。 ListHead のストレージは、すべての IRQL に常駐している必要があります。

[in, out] Lock

リストへのアクセスを同期するために使用されるスピン ロックとして機能する KSPIN_LOCK 構造体へのポインター。 スピン ロックのストレージは常駐であり、 KeInitializeSpinLock を呼び出して初期化されている必要があります。 このスピン ロックは、 ExInterlockedXxxList ルーチンでのみ使用する必要があります。

戻り値

ExInterlockedPopEntryList は、リストから削除された SINGLE_LIST_ENTRY 構造体へのポインターを返します。 リストが空の場合、ルーチンは NULL を返します。

注釈

ExInterlockedPopEntryList、PopEntryList と同じ操作をアトミックに実行します。 同じリストでアトミック呼び出しと非アトミック呼び出しを混在させないでください。

このルーチンを使用して 1 つのリンクリストを実装する方法の詳細については、「Singly および Doubly Linked Lists」を参照してください。

ExInterlockedPopEntryList ルーチンは、任意の IRQL で呼び出すことができます。 ListHead パラメーターのストレージは、すべての IRQL に常駐している必要があります。

要件

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

こちらもご覧ください

ExInitializeSListHead

ExInterlockedPopEntrySList

ExInterlockedPushEntryList

KeInitializeSpinLock

PopEntryList