次の方法で共有


NdisRetreatNetBufferListDataStart 関数 (ndis/nblapi.h)

NdisRetreatNetBufferListDataStart 関数を呼び出して、NET_BUFFER_LIST 構造体内のすべての NET_BUFFER 構造体で使用 データ空間の を増やします。

構文

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferListDataStart(
  [in]           NET_BUFFER_LIST         *NetBufferList,
  [in]           ULONG                   DataOffsetDelta,
  [in]           ULONG                   DataBackFill,
  [in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler,
  [in, optional] NET_BUFFER_FREE_MDL     *FreeMdlHandler
);

パラメーター

[in] NetBufferList

以前に割り当てられたNET_BUFFER_LIST構造体へのポインター。

[in] DataOffsetDelta

各NET_BUFFER構造体で 追加の 使用データ領域の量。 要求を満たすのに十分な 未使用のデータ領域 がない場合は、NDIS により多くのメモリが割り当てられます。

[in] DataBackFill

NDIS がメモリを割り当てる必要がある場合、このパラメーターは、割り当てる DataOffsetDelta パラメーターの値に加えて、データ領域の量を指定します。

[in, optional] AllocateMdlHandler

NetAllocateMdl 関数の省略可能なエントリ ポイント。 呼び出し元が NetAllocateMdl 関数のエントリ ポイントを指定した場合、NDIS は NetAllocateMdl 呼び出して MDL とメモリを割り当てます。

[in, optional] FreeMdlHandler

NetFreeMdl 関数の省略可能なエントリ ポイント。 呼び出し元が NetFreeMdl 関数のエントリ ポイントを指定した場合、NDIS は NetFreeMdl 呼び出して MDL とメモリを解放します。

戻り値

NdisRetreatNetBufferListDataStart は、次のいずれかを返します。

リターン コード 形容
NDIS_STATUS_SUCCESS
NdisRetreatNetBufferListDataStartDataOffset メンバーの値を減らすか、新しいストレージを割り当てることによって、すべてのNET_BUFFER構造体にデータ領域を正常に割り当てることに成功しました。
NDIS_STATUS_RESOURCES
リソースが不足しているため、NdisRetreatNetBufferListDataStart 失敗しました。
NDIS_STATUS_FAILURE
リソースが不足している以外の理由で、NdisRetreatNetBufferListDataStart が失敗しました。

備考

NdisRetreatNetBufferListDataStart 呼び出すことは、 を呼び出すことと同じです。 NET_BUFFER_LIST 構造体のすべての NET_BUFFER 構造体に対して NdisRetreatNetBufferDataStart 関数を します。 NdisRetreatNetBufferListDataStart は、すべてのNET_BUFFER構造体の DataOffset メンバーの値を減らすことで要求を満たそうとします。 使用できないデータ領域 十分でない場合、この関数は新しいバッファーと MDL を割り当て、NET_BUFFER構造体の MDL チェーンの先頭に新しい MDL をチェーンします。

を呼び出します。NdisAdvanceNetBufferListDataStart 関数を して、以前の NdisRetreatNetBufferListDataStart 呼び出しで要求されたデータ領域を解放します。 または、ドライバーは、〘NET_BUFFER_LIST構造体の各NET_BUFFER構造体の NdisAdvanceNetBufferDataStart 関数を します。 NdisAdvanceNetBufferListDataStart 呼び出す方が効率的です。

必要条件

要件 価値
サポートされる最小クライアント NDIS 6.0 以降でサポートされています。
ターゲット プラットフォーム 万国
ヘッダー ndis/nblapi.h (ndis.h を含む)
ライブラリ Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 する Irql_NetBuffer_Function(ndis)

関連項目

NET_BUFFER

NET_BUFFER_LIST

NdisAdvanceNetBufferDataStart NdisAdvanceNetBufferListDataStart NdisRetreatNetBufferDataStart

NetAllocateMdl

NetFreeMdl する