次の方法で共有


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 のリンクされたリストを参照してください。

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

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任意のレベル (「解説」セクションを参照)

関連項目

ExInitializeSListHead

ExInterlockedPopEntrySList する

ExInterlockedPushEntryList する

KeInitializeSpinLock

PopEntryList