次の方法で共有


NdisInitializeListHead マクロ (ndis.h)

NdisInitializeListHead 関数は、二重にリンクされたドライバーが管理するキューを初期化します。

構文

void NdisInitializeListHead(
  [in]  _ListHead
);

パラメーター

[in] _ListHead

インターロックされたキューまたはリストの先頭に対してドライバーによって割り当てられた非ページ ストレージへのポインター。

戻り値

何一つ

備考

NdisInitializeListHead は、ミニポートInitializeEx 関数から呼び出すことができます。また、ドライバー キューが内部的に要求される場合は、プロトコル ドライバーの DriverEntry ルーチンから呼び出すことができます。 ただし、ミニポート ドライバーは、NDIS ライブラリが要求とミニポート ドライバーに送信されたパケットをシリアル化するため、内部キューを設定することはめったにありません。

内部キューを維持する NDIS ドライバーは、ドライバー関数のキューに登録されたエントリへのアクセスを同期する役割を担います。 NdisInterlockedXxxリスト 関数は、ドライバーがマルチプロセッサ コンピューターで実行されている場合でも、呼び出し元が指定したスピン ロックによって保護されているため、任意の時点で 1 つのドライバー関数のみがキューに登録されたエントリにアクセスできるようにします。

連動キューの場合、ドライバーはスピン ロック用の非ページ ストレージも提供する必要があります。 NdisInterlockedXxxList 関数にスピン ロックへのポインターを渡す前に、NdisAllocateSpinLock 関数を使用してスピン ロックを初期化する必要があります。

NdisInitializeListHead の呼び出し元は、任意の IRQL で実行できます。 NdisInitializeListHead が IRQL >= DISPATCH_LEVELで呼び出された場合、ListHead のストレージは常駐している必要があります。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista の NDIS 6.0 および NDIS 5.1 ドライバー (NdisInitializeListHead (NDIS 5.1) を参照) でサポートされています。 Windows XP で NDIS 5.1 ドライバー (NdisInitializeListHead (NDIS 5.1) を参照) でサポートされます。
ターゲット プラットフォーム デスクトップ
ヘッダー ndis.h (Ndis.h を含む)
IRQL 任意のレベル (「解説」セクションを参照)

関連項目

NDIS プロトコル ドライバーの DriverEntry

ミニポートInitializeEx

NdisAllocateSpinLock

NdisInterlockedInsertHeadList NdisInterlockedInsertTailList NdisInterlockedRemoveHeadList