次の方法で共有


NdisAllocateFromNPagedLookasideList マクロ (ndis.h)

NdisAllocateFromNPagedLookasideList 関数は、指定されたルックアサイド リスト ヘッドから最初のエントリを削除します。 ルックアサイド リストが現在空の場合、非ページ プールからエントリが割り当てられます。

構文

void NdisAllocateFromNPagedLookasideList(
   _L
);

パラメーター

_L

エントリの割り当て元となるルックアサイド リストの先頭へのポインター。 呼び出し元は、 を使用してリスト ヘッドを既に初期化しました。 NdisInitializeNPagedLookasideList 関数。

戻り値

なし

解説

ルックアサイド リストが空でない場合、 NdisAllocateFromNPagedLookasideList はリストから最初のエントリを削除し、そのアドレスを呼び出し元に返します。 ルックアサイド リストが空の場合、NdisAllocateFromNPagedLookasideList は、 の Allocate パラメーターで指定された Allocate 関数を呼び出します。 NdisInitializeNPagedLookasideList 関数。リストの初期化時に指定された呼び出し元 (存在する場合)、または呼び出し元の代わりにエントリを割り当てる関数。 NdisAllocateFromNPagedLookasideList は、呼び出し元が指定した Allocate 関数がある場合、またはこの関数自体が非ページ エントリを割り当てることができない場合は NULL を返します。

非ページ ルックアサイド リストから割り当てられるすべてのエントリは固定サイズです。これは、ドライバーが最初に NdisInitializeNPagedLookasideList と呼ばれたときに指定されました。 そのため、ルックアサイド リストは、動的 I/O 要求に応じて状態を維持する固定サイズのブロックを割り当てる必要があるドライバーに特に役立ちます。 たとえば、接続指向 NDIS ドライバーは、VC が作成されるとルックアサイド リストから必要な VC コンテキスト領域を割り当て、そのような各エントリを ルックアサイド リストに解放します。各 VC が破棄されるときに NdisFreeToNPagedLookasideList 関数。

要件

要件
サポートされている最小のクライアント Windows Vista の NDIS 6.0 および NDIS 5.1 ドライバー (「NdisAllocateFromNPagedLookasideList (NDIS 5.1)」を参照) でサポートされています。 Windows XP の NDIS 5.1 ドライバー (「NdisAllocateFromNPagedLookasideList (NDIS 5.1)」を参照) でサポートされています。
対象プラットフォーム デスクトップ
Header ndis.h (Ndis.h を含む)
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 Irql_Miscellaneous_Function(ndis)、NdisAllocateFromNPagedLookasideList(ndis)、NdisAllocateFromNPagedLookasideList_InitFail(ndis)

こちらもご覧ください

NdisDeleteNPagedLookasideList NdisFreeToNPagedLookasideList NdisInitializeNPagedLookasideList