次の方法で共有


NdisAllocateBuffer 関数 (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 NdisAllocateBuffer(
  [out]          PNDIS_STATUS Status,
  [out]          PNDIS_BUFFER *Buffer,
  [in, optional] NDIS_HANDLE  PoolHandle,
  [in]           PVOID        VirtualAddress,
  [in]           UINT         Length
);

パラメーター

[out] Status

呼び出し元が指定した変数へのポインター。この関数はバッファー割り当ての最終状態を返します。これは、バッファー で有効なバッファー記述子ポインター 返された場合にNDIS_STATUS_SUCCESSされます。それ以外の場合はNDIS_STATUS_FAILURE。

[out] Buffer

この関数が割り当てられたバッファー記述子へのポインターを返す、呼び出し元が指定した変数へのポインター。

[in, optional] PoolHandle

NdisAllocateBufferPoolの前の呼び出しによって返されるハンドルを指定します。

[in] VirtualAddress

返されたバッファー記述子にマップされる、以前に割り当てられたシステム領域メモリのベース仮想アドレスへのポインター。

[in] Length

マップするバイト数を指定します。

戻り値

何一つ

備考

戻り値: なし

NdisAllocateBuffer は、パケット ヘッダーまたは NIC 受信バッファーに使用されるメモリなど、以前に割り当てられたメモリの指定された範囲をマップするバッファー記述子を割り当て、初期化します。

バッファー記述子の割り当ては、NdisAllocateBufferPool が作成 バッファー プールに描画されます。 ドライバーは、初期化中に NdisAllocateBufferPool を呼び出した場合に必要なバッファー記述子を割り当てるために必要な回数 NdisAllocateBufferPool 呼び出すことができます。

下位レベルのすべての NDIS ドライバーは、バッファー プールからのパケットにチェーンされているすべてのバッファー記述子を割り当てる必要があります。 最上位レベルのプロトコル ドライバーにのみ、仮想メモリ範囲をマッピングする OS 依存記述子を指定できます。また、これらのメモリ記述子が NDIS バッファー記述子と同等の場合、最上位レベルのプロトコルは、このような記述子をパラメーターとして NdisXxx 関数 渡すことができます。

必要条件

要件 価値
ヘッダー ndis.h (Ndis.h を含む)
ライブラリ Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

関連項目

  • NdisAllocateBufferPool
  • NdisAllocateMemoryWithTag
  • NdisFreeBuffer