NetApiBufferFree 関数 (lmapibuf.h)

NetApiBufferFree 関数は、NetApiBufferAllocate 関数が割り当てるメモリを解放します。 また、アプリケーションは NetApiBufferFree を呼び出して、他のネットワーク管理機能が内部的に使用して情報を返すメモリを解放する必要もあります。

構文

NET_API_STATUS NET_API_FUNCTION NetApiBufferFree(
  [in] _Frees_ptr_opt_ LPVOID Buffer
);

パラメーター

[in] Buffer

NetApiBufferAllocate 関数を呼び出して割り当てられた別のネットワーク管理機能またはメモリによって以前に返されたバッファーへのポインター。

戻り値

関数が成功した場合、戻り値はNERR_Success。

関数が失敗した場合、戻り値はシステム エラー コードです。 エラー コードの一覧については、「 システム エラー コード」を参照してください。

解説

NetApiBufferFree 関数は、ネットワーク管理機能で使用されるメモリを解放するために使用されます。 この関数は、次の 2 つの場合に使用されます。

  • メモリが不要になったときに、アプリケーションの呼び出しによって NetApiBufferAllocate 関数に明示的に割り当てられたメモリを解放します。
  • 呼び出し元に情報を返すリモート可能なネットワーク管理機能へのアプリケーションの呼び出しによって内部的に割り当てられたメモリを解放します。 RPC ランタイム ライブラリは、返される情報を含むバッファーを内部的に割り当てます。

多くのネットワーク管理機能は、情報を取得し、この情報を、複雑な構造体、構造体の配列、または入れ子になった構造体の配列を含むバッファーとして返します。 これらの関数は、RPC ランタイム ライブラリを使用して、ローカル コンピューターまたはリモート サーバーへの呼び出しのどちらに対しても、戻り値情報を含むバッファーを内部的に割り当てます。 たとえば、 NetServerEnum 関数はサーバーのリストを取得し、この情報を bufptr パラメーターが指す構造体の配列として返します。 関数が成功すると、bufptr パラメーターで返される構造体の配列をアプリケーションに格納するために、NetServerEnum 関数によって内部的にメモリが割り当てられます。 この構造体の配列が不要になった場合は、この内部メモリを解放するために、Buffer パラメーターをNetServerEnum から返される bufptr パラメーターに設定して、アプリケーションから NetApiBufferFree 関数を呼び出す必要があります。 このような場合、 NetApiBufferFree 関数は、入れ子になった構造体のメモリ、文字列へのポインター、その他のデータを含む、バッファーに割り当てられたすべての内部メモリを解放します。

NetApiBufferFree 関数またはその他の ApiBuffer 関数を正常に実行するために、特別なグループ メンバーシップは必要ありません。

NetApiBufferFree 関数を使用して、アプリケーションによって明示的に割り当てられたメモリを解放する方法を示すコード サンプルについては、NetApiBufferAllocate 関数を参照してください。

NetApiBufferFree 関数を使用して、ネットワーク管理機能によって内部的に割り当てられたメモリを解放して情報を返す方法を示すコード サンプルについては、NetServerEnum 関数を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー lmapibuf.h (include Lm.h)
Library Netapi32.lib
[DLL] Netapi32.dll

関連項目

Api バッファー関数

NetApiBufferAllocate

NetApiBufferReallocate

NetApiBufferSize

ネットワーク管理機能

ネットワーク管理の概要

ネットワーク管理機能のバッファー長

ネットワーク管理機能バッファー