атрибут 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)); 
}

См. также раздел

Выделить

Массивы

Массивы и указатели

Атрибуты массива и Sized-Pointer

В

midl_user_free

/Osf

Out

Ptr

Ref

Уникальный