NdisInterlockedPushEntrySList マクロ (ndis.h)
NdisInterlockedPushEntrySList 関数は、一連の一連のリンクされたリストの先頭にエントリを挿入します。
構文
void NdisInterlockedPushEntrySList(
SListHead,
SListEntry,
[in] Lock
);
パラメーター
SListHead
指定したエントリが挿入される、既に初期化されたシーケンスされた 1 つのリンクリストの先頭へのポインター。
SListEntry
挿入するエントリへのポインター。
[in] Lock
呼び出し元が現在保持していない、呼び出し元が指定したスピン ロックへのポインター。
戻り値
何一つ
備考
ドライバーの最初の呼び出しの前に、NdisInterlockedPushEntrySList 関数を使用してリスト の先頭を初期化する必要があります。NdisInitializeSListHead 関数を します。
ドライバー は、NdisInterlockedPushEntrySList 呼び出すときに、特定の ロック を保持 できません。 必要に応じて、ドライバーは NdisInterlockedPushEntrySList を呼び出す前に、NdisReleaseSpinLock 関数呼び出す必要があります。 NdisInterlockedPushEntrySList は、この操作がマルチプロセッサ セーフな方法で処理されるように、リストの先頭 ListEntry を挿入する前に、このロック自体を取得する必要があります。
呼び出し元は、Lockの常駐ストレージを提供する必要があります。これは、NdisInterlocked への最初の呼び出しの前に、NdisAllocateSpinLock 関数で初期化する必要があります。SList ルーチン。
I/O 操作を再試行するドライバーは、二重にリンクされたインターロックされたキューと、NdisInterlockedInsert/Remove を使用する必要があります。S-List の代わりに、 関数を一覧表示します。
IRQL >= DISPATCH_LEVEL で NdisInterlockedPushEntrySList 呼び出された場合、ListHead パラメーターのストレージとリスト エントリは常駐している必要があります
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista の NDIS 6.0 および NDIS 5.1 ドライバー (NdisInterlockedPushEntrySList (NDIS 5.1) を参照) でサポートされています。 Windows XP の NDIS 5.1 ドライバー (NdisInterlockedPushEntrySList (NDIS 5.1) を参照) でサポートされています。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | ndis.h (Ndis.h を含む) |
IRQL | 任意のレベル |
関連項目
NdisAllocateSpinLock の
NdisInitializeSListHead の
NdisInterlockedPopEntrySList の
NdisQueryDepthSList の
NdisReleaseSpinLock の