Функция NdrGetUserMarshalInfo (rpcndr.h)

Функция NdrGetUserMarshalInfo предоставляет дополнительные сведения для wire_marshal и user_marshal вспомогательных функций.

Синтаксис

RPC_STATUS NdrGetUserMarshalInfo(
  unsigned long         *pFlags,
  unsigned long         InformationLevel,
  NDR_USER_MARSHAL_INFO *pMarshalInfo
);

Параметры

pFlags

Указатель с тем же именем, которое RPC передается вспомогательной функции.

InformationLevel

Требуемый уровень детализации для получения. Разные уровни подразумевают разные наборы информационных полей. В настоящее время определен только уровень 1.

pMarshalInfo

Адрес буфера памяти, предоставленного приложением для получения запрошенной информации. Размер буфера должен быть не меньше структуры информации, указанной в InformationLevel.

Возвращаемое значение

Значение Значение
RPC_S_OK
Вызов выполнен успешно.
RPC_S_INVALID_ARG
По крайней мере один из аргументов был недопустимым.
RPC_X_INVALID_BUFFER
Текущий буфер маршалинга недопустим.

Комментарии

Функция NdrGetUserMarshalInfo вызывается с помощью wire_marshal или user_marshal вспомогательных функций (предоставляемых приложением) <type>_UserSize, <type>_UserMarshal, <type>_UserUnmarshal и <type>_UserFree для получения дополнительных сведений о состоянии вызова. Эта функция часто используется для получения размера буфера маршалинга с целью проверки состояния конца буфера. Отправка данных неправильного размера — это часто используемый метод нарушения безопасности системы.

Полный список сведений, возвращаемых NdrGetUserMarshalInfo, см. в разделе NDR_USER_MARSHAL_INFO.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header rpcndr.h (включая Rpc.h)
Библиотека Rpcrt4.lib
DLL Rpcrt4.dll

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

NDR_USER_MARSHAL_INFO

user_marshal

wire_marshal