NdisAllocateBufferPool 関数 (ndis.h)
注 NDIS 5 です。 x は非推奨となり、NDIS 6 に置き換えられます。 x をします。 新しい NDIS ドライバーの開発については、「Windows Vista 以降のネットワーク ドライバーを参照してください。 NDIS 5 の移植に関する情報。 NDIS 6 に x ドライバーを します。 x、NDIS 6.0 に NDIS 5.x ドライバーを移植するを参照してください。
この関数は、呼び出し元が NdisAllocateBuffer 関数を呼び出すことによってバッファー記述子を割り当てることができるハンドルを返します。
構文
void NdisAllocateBufferPool(
[out] PNDIS_STATUS Status,
[out] PNDIS_HANDLE PoolHandle,
[in] UINT NumberOfDescriptors
);
パラメーター
[out] Status
この関数がバッファー プール割り当ての最終的な状態を返す呼び出し元が指定した変数へのポインター。
[out] PoolHandle
この関数がバッファー プールへのハンドルを返す呼び出し元が指定した変数へのポインター。 このハンドルは、ドライバーが後で呼び出す NDIS バッファー関数に必要なパラメーターです。
[in] NumberOfDescriptors
割り当てられたバッファー記述子をプールに解放せずに、呼び出し元がバッファー プールから割り当てるバッファー記述子の数を指定します。
戻り値
何一つ
備考
常にNDIS_STATUS_SUCCESSを返します。
この関数が返された後、ドライバーは、NdisAllocateBuffer 関数を 1 回以上呼び出して、必要なバッファー記述子を割り当てます。 ドライバーは、初期化中にこの関数を呼び出す必要があります。
NumberOfDescriptors NIC ドライバーによって指定されるパラメーターは、通常、NIC の機能によって異なります。 たとえば、リング バッファーを備えたバス マスター DMA NIC のドライバーは、完全なリングをマップするのに十分な大きさ NumberOfDescriptors 少なくとも指定します。
この関数の呼び出しで指定 NumberOfDescriptors は、ドライバーがバッファー プールの空きリストにバッファー記述子 を返す NdisFreeBuffer 関数を呼び出す前に、ドライバーが NdisAllocateBuffer を呼び出すことができる回数の有効な制限です。
ドライバーが割り当てられたバッファー プールが不要になった場合は、バッファー プール ハンドルを解放する NdisFreeBufferPool 関数を呼び出します。
ドライバーは、この関数を呼び出す前に保持しているスピン ロックを解放する必要があります。
下位レベルのすべての NDIS ドライバーは、バッファー プールからのパケットにチェーンされているすべてのバッファー記述子を割り当てる必要があります。 仮想メモリ範囲をマッピングする OS 依存記述子を指定できるのは、最上位レベルのプロトコル ドライバーのみです。 これらのメモリ記述子が NDIS バッファー記述子と同等の場合、最上位レベルのプロトコルは、このような記述子を NDIS 関数にパラメーターとして渡すことができます。
OS バージョン: Windows CE .NET 4.0 以降を します。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ndis.h |
IRQL | IRQL <= DISPATCH_LEVEL |