Поделиться через


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

ptr

ссылок

уникальные