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 매개 변수에 반환된 구조체 배열을 애플리케이션에 저장합니다. 이 구조체 배열이 더 이상 필요하지 않은 경우 사용된 이 내부 메모리를 해제하려면 Buffer 매개 변수가 NetServerEnum에서 반환한 bufptr 매개 변수로 설정된 애플리케이션에서 NetApiBufferFree 함수를 호출해야 합니다. 이러한 경우 NetApiBufferFree 함수는 중첩된 구조체의 메모리, 문자열에 대한 포인터 및 기타 데이터를 포함하여 버퍼에 할당된 모든 내부 메모리를 해제합니다.
NetApiBufferFree 함수 또는 다른 ApiBuffer 함수를 성공적으로 실행하려면 특별한 그룹 멤버 자격이 필요하지 않습니다.
NetApiBufferFree 함수를 사용하여 애플리케이션에서 명시적으로 할당한 메모리를 해제하는 방법을 보여 주는 코드 샘플은 NetApiBufferAllocate 함수를 참조하세요.
NetApiBufferFree 함수를 사용하여 정보를 반환하기 위해 네트워크 관리 함수에 의해 내부적으로 할당된 메모리를 해제하는 방법을 보여 주는 코드 샘플은 NetServerEnum 함수를 참조하세요.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | lmapibuf.h(Lm.h 포함) |
라이브러리 | Netapi32.lib |
DLL | Netapi32.dll |