атрибут midl_user_allocate
Функция midl_user_allocate — это функция, которую клиентские и серверные приложения предоставляют для выделения памяти.
void __RPC_FAR * __RPC_API midl_user_allocate (size_t cBytes);
Параметры
-
cBytes
-
Указывает количество выделенных байтов.
Комментарии
Как клиентские, так и серверные приложения должны реализовывать функцию midl_user_allocate , если компиляция не выполняется в режиме совместимости OSF (/osf). Приложения и созданные заглушки вызывают midl_user_allocate при работе с объектами, на которые ссылаются указатели:
- Серверное приложение должно вызывать midl_user_allocate для выделения памяти для приложения, например при создании нового узла.
- Серверная заглушка вызывает midl_user_allocate при распаковке данных, указывающих на адресное пространство сервера.
- Клиентская заглушка вызывает midl_user_allocate при распаковке данных с сервера, на который ссылается указатель выхода . Обратите внимание, что для указателей [in], [out] и [unique] клиентские заглушки вызывают midl_user_allocate только в том случае, если значение указателя [unique] на входных данных имеет значение NULL и изменяется на значение, отличное от NULL во время вызова. Если на входных данных указатель [unique] был не равен NULL , клиентская заглушка записывает связанные данные в существующую память.
Если midl_user_allocate не удается выделить память, он должен вернуть указатель NULL .
Рекомендуется midl_user_allocate возвращать указатель, выровненный по 8 байтам.
Примеры
#include <windows.h>
void __RPC_FAR * __RPC_API midl_user_allocate(size_t cBytes)
{
return(malloc(cBytes));
}
См. также раздел