NdisAllocateBuffer 関数 (ndis.h)

メモ NDIS 5。 x は非推奨となり、NDIS 6 に置き換えられます。 x があります。 新しい NDIS ドライバーの開発については、「 Windows Vista 以降のネットワーク ドライバー」を参照してください。 NDIS 5 の移植に関する情報。 x ドライバーから NDIS 6 へ。 x については、「 NDIS 5.x ドライバーを NDIS 6.0 に移植する」を参照してください。

NdisAllocateBuffer は、既に割り当てられている非ページ メモリ ブロック内に、指定された仮想 (サブ) 範囲をマッピングするバッファー記述子を作成します。

構文

void NdisAllocateBuffer(
  [out]          PNDIS_STATUS Status,
  [out]          PNDIS_BUFFER *Buffer,
  [in, optional] NDIS_HANDLE  PoolHandle,
  [in]           PVOID        VirtualAddress,
  [in]           UINT         Length
);

パラメーター

[out] Status

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

[out] Buffer

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

[in, optional] PoolHandle

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

[in] VirtualAddress

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

[in] Length

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

戻り値

なし

解説

戻り値: なし

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

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

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

要件

要件
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

こちらもご覧ください