Udostępnij przez


atrybut midl_user_allocate

Funkcja midl_user_allocate jest funkcją udostępnianą przez aplikacje klienckie i serwerowe w celu przydzielenia pamięci.

void __RPC_FAR * __RPC_API midl_user_allocate (size_t cBytes);

Parametry

cBytes

Określa liczbę bajtów do przydzielenia.

Uwagi

Zarówno aplikacje klienckie, jak i aplikacje serwerowe muszą implementować funkcję midl_user_allocate , chyba że kompilujesz się w trybie zgodności OSF (/osf). Aplikacje i wygenerowane wycinki wywołania midl_user_allocate podczas pracy z obiektami, do których odwołuje się wskaźnik:

  • Aplikacja serwera powinna wywoływać midl_user_allocate w celu przydzielenia pamięci dla aplikacji; na przykład podczas tworzenia nowego węzła.
  • Łącznik serwera wywołuje midl_user_allocate , gdy rozwikłanie wskazywanych danych do przestrzeni adresowej serwera.
  • Funkcja wycinkowa klienta wywołuje midl_user_allocate w przypadku odłączania danych z serwera, do którego odwołuje się wskaźnik wychodzący . Należy pamiętać, że w przypadku wskaźników [in], [out] i [unique] wycinków klienta wywołuje midl_user_allocate tylko wtedy, gdy wartość wskaźnika [unikatowa] miała wartość NULL w danych wejściowych i zmienia się na wartość inną niż NULL podczas wywołania. Jeśli wskaźnik [unique] był inny niż NULL w danych wejściowych, element końcowy klienta zapisuje skojarzone dane w istniejącej pamięci.

Jeśli midl_user_allocate nie można przydzielić pamięci, musi zwrócić wskaźnik NULL .

Zaleca się , aby midl_user_allocate zwrócić wskaźnik, który jest wyrównany o 8 bajtów.

Przykłady

#include <windows.h>

void __RPC_FAR * __RPC_API midl_user_allocate(size_t cBytes) 
{ 
    return(malloc(cBytes)); 
}

Zobacz także

przydziel

Tablice

Tablice i wskaźniki

Tablica i atrybuty Sized-Pointer

w usłudze

midl_user_free

/Osf

ptr

Ref

unikatowe