次の方法で共有


NdisInterlockedPopEntrySList マクロ (ndis.h)

NdisInterlockedPopEntrySList 関数は、一連の 1 つのリンクされたリストから最初のエントリを削除します。

構文

void NdisInterlockedPopEntrySList(
        SListHead,
  [in]  Lock
);

パラメーター

SListHead

エントリが返される、既に初期化されたシーケンス化された 1 つのリンクリストの先頭へのポインター。

[in] Lock

呼び出し元が現在保持していない、呼び出し元が指定したスピン ロックへのポインター。

戻り値

なし

解説

NdisInterlockedPopEntrySList を呼び出すときに、ドライバーが特定のロックを保持しないようにする必要があります。 必要に応じて、ドライバーは、この呼び出しを行う前に NdisReleaseSpinLock 関数を呼び出す必要があります。 NdisInterlockedPopEntrySList 自体は、マルチプロセッサ セーフな方法で S-List の最初のエントリ (存在する場合) を削除するには、このスピン ロックを取得する必要があります。

呼び出し元 は Lock の常駐ストレージを提供する必要があります。これは、NdisInterlocked への最初の呼び出しの前に NdisAllocateSpinLock 関数で初期化する必要があります 。SList 関数。

IRQL >= DISPATCH_LEVELで NdisInterlockedPopEntrySList が呼び出される場合、ListHead パラメーターのストレージは常駐である必要があります。

要件

要件
サポートされている最小のクライアント Windows Vista の NDIS 6.0 および NDIS 5.1 ドライバー (NdisInterlockedPopEntrySList (NDIS 5.1)を参照) でサポートされています。 Windows XP の NDIS 5.1 ドライバー (「NdisInterlockedPopEntrySList (NDIS 5.1)」を参照) でサポートされています。
対象プラットフォーム デスクトップ
Header ndis.h (Ndis.h を含む)
IRQL 任意のレベル

こちらもご覧ください

NdisAllocateSpinLock

NdisFreeSpinLock

NdisInitializeSListHead

NdisInterlockedPushEntrySList

NdisQueryDepthSList

NdisReleaseSpinLock