midl_user_free函式

RPC 開發人員必須提供 midl_user_free 函式。 它會釋放 由 midl_user_allocate 為 RPC 存根和程式庫常式配置的記憶體。 您的 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 ,以釋放應用程式佈建的記憶體,例如刪除動態配置的資料節點時。
  • 伺服器存根會呼叫 midl_user_free ,以在封送處理所有 [out] 引數、[in]、[out] 引數和函式傳回值之後釋放伺服器上的記憶體。

例如,顯示 「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 記憶體管理套件