Функция 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 используется для освобождения памяти, используемой функциями управления сетью. Эта функция используется в двух случаях:

  • Освобождение памяти, явно выделенной вызовами в приложении функции NetApiBufferAllocate , когда память больше не нужна.
  • Для освобождения памяти, выделенной внутренне путем вызовов в приложении к функциям управления сетью, которые возвращают сведения вызывающей объекту. Библиотека времени выполнения RPC внутренне выделяет буфер, содержащий возвращаемые сведения.

Многие функции управления сетью извлекают сведения и возвращают их в виде буфера, который может содержать сложную структуру, массив структур или массив вложенных структур. Эти функции используют библиотеку времени выполнения RPC для внутреннего выделения буфера, содержащего возвращаемые сведения, будь то локальный компьютер или удаленный сервер. Например, функция NetServerEnum извлекает списки серверов и возвращает эти сведения в виде массива структур, на которые указывает параметр bufptr . При успешном выполнении функции память выделяется внутренне функцией NetServerEnum для хранения массива структур, возвращаемых в параметре bufptr для приложения. Если этот массив структур больше не нужен, функция NetApiBufferFree должна вызываться приложением с параметром Buffer , равным параметру bufptr , возвращенному NetServerEnum , чтобы освободить используемую внутреннюю память. В таких случаях функция NetApiBufferFree освобождает всю внутреннюю память, выделенную для буфера, включая память для вложенных структур, указатели на строки и другие данные.

Для успешного выполнения функции NetApiBufferFree или любой другой функции ApiBuffer не требуется членство в специальной группе.

Пример кода, демонстрирующий использование функции NetApiBufferFree для освобождения памяти, явно выделенной приложением, см. в разделе Функция NetApiBufferAllocate .

Пример кода, демонстрирующий использование функции NetApiBufferFree для освобождения памяти, внутренне выделенной функцией управления сетью для возврата информации, см. в разделе Функция NetServerEnum .

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header lmapibuf.h (включая Lm.h)
Библиотека Netapi32.lib
DLL Netapi32.dll

См. также раздел

Функции буфера API

NetApiBufferAllocate

NetApiBufferReallocate

NetApibufferSize

Функции управления сетью

Общие сведения об управлении сетью

Длина буфера функции управления сетью

Буферы функций управления сетью