NdisInterlockedPushEntrySList マクロ (ndis.h)
NdisInterlockedPushEntrySList 関数は、一連の一連のリンクリストの先頭にエントリを挿入します。
構文
void NdisInterlockedPushEntrySList(
SListHead,
SListEntry,
[in] Lock
);
パラメーター
SListHead
既に初期化されているシーケンス化された、指定したエントリを挿入する 1 つのリンクリストの先頭へのポインター。
SListEntry
挿入するエントリへのポインター。
[in] Lock
呼び出し元が現在保持していない、呼び出し元が指定したスピン ロックへのポインター。
戻り値
なし
解説
ドライバーが NdisInterlockedPushEntrySList 関数を最初に呼び出す前に、 を使用してリスト ヘッドを初期化する必要があります。 NdisInitializeSListHead 関数。
NdisInterlockedPushEntrySList を呼び出すとき、ドライバーは指定された Lock を保持してはなりません。 必要に応じて、ドライバーは 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)」を参照) でサポートされています。 |
対象プラットフォーム | デスクトップ |
Header | ndis.h (Ndis.h を含む) |
IRQL | 任意のレベル |