다음을 통해 공유


midl_user_free 함수

midl_user_free 함수는 RPC 개발자가 제공해야 합니다. RPC 스텁 및 라이브러리 루틴에 대해 midl_user_allocate 할당한 메모리를 해제합니다. midl_user_free 함수는 다음 프로토타입과 일치해야 합니다.

void __RPC_USER midl_user_free(void * pBuffer);

pBuffer 매개 변수는 해제할 메모리에 대한 포인터를 지정합니다. OSF 호환성(/osf) 모드에서 컴파일하지 않는 한 클라이언트 애플리케이션과 서버 애플리케이션 모두 midl_user_free 함수를 구현해야 합니다. midl_user_free 함수는 midl_user_allocate 할당된 모든 스토리지를 해제할 수 있어야 합니다.

애플리케이션 및 스텁은 할당된 개체를 처리할 때 midl_user_free 호출합니다.

  • 서버 애플리케이션은 동적으로 할당된 데이터 노드를 삭제하는 경우와 같이 애플리케이션에서 할당한 메모리를 해제하기 위해 midl_user_free 호출해야 합니다.
  • 서버 스텁은 모든 [out] 인수, [in],[out] 인수 및 함수 반환 값을 마샬링한 후 midl_user_free 호출하여 서버에서 메모리를 해제합니다.

예를 들어 "Hello, world"를 표시하는 RPC Windows 샘플 프로그램은 C 함수를 무료로 사용하여 midl_user_free 구현합니다.

void __RPC_USER midl_user_free(void __RPC_FAR * p)
{
    free(p);
}

참고

RpcSs 패키지가 사용하도록 설정된 경우(예: [ enable_allocate] 특성을 사용한 결과) 서버 프로그램에서 RpcSmFree 를 사용하여 메모리를 해제해야 합니다. 자세한 내용은 RpcSs 메모리 관리 패키지를 참조하세요.