Функция midl_user_free
Функция midl_user_free должна предоставляться разработчиками RPC. Она освобождает память, выделенную midl_user_allocate для заглушки RPC и подпрограмм библиотеки. Функция midl_user_free должна соответствовать следующему прототипу:
void __RPC_USER midl_user_free(void * pBuffer);
Параметр pBuffer указывает указатель на память, которую необходимо освободить. Клиентское приложение и серверное приложение должны реализовать функцию midl_user_free, если только вы не компилируетсяе в режиме совместимости OSF (/osf). Функция midl_user_free должна быть в состоянии освободить все хранилище, выделенное midl_user_allocate.
Приложения и заглушки вызывают midl_user_free при работе с выделенными объектами:
- Серверное приложение должно вызывать midl_user_free для освобождения памяти, выделенной приложением, например при удалении динамически выделенного узла данных.
- Заглушка сервера вызывает midl_user_free, чтобы освободить память на сервере после маршалинга всех аргументов [out], [in], [out] аргументов и возвращаемого значения функции.
Например, пример программы RPC Для Windows, отображающей "Hello, world", реализует midl_user_free с точки зрения бесплатной функции C:
void __RPC_USER midl_user_free(void __RPC_FAR * p)
{
free(p);
}
Заметка
Если пакет RpcSs включен (например, в результате использования атрибута [enable_allocate] программа сервера должна использовать RpcSmFree для освобождения памяти. Дополнительные сведения см. в пакета управления памятью RpcSs.