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


Функция RpcErrorGetNextRecord (rpcasync.h)

Функция RpcErrorGetNextRecord извлекает следующую расширенную запись сведений об ошибке для дескриптора перечисления.

Синтаксис

RPC_STATUS RpcErrorGetNextRecord(
  [in]  RPC_ERROR_ENUM_HANDLE   *EnumHandle,
  [in]  BOOL                    CopyStrings,
  [out] RPC_EXTENDED_ERROR_INFO *ErrorInfo
);

Параметры

[in] EnumHandle

Указатель на дескриптор перечисления в виде структуры RPC_ERROR_ENUM_HANDLE . Структура должна быть выделена вызывающим объектом и не может быть освобождена до завершения операции. Все члены игнорируются при входных данных.

[in] CopyStrings

Указывает, копируются ли строковые поля в ErrorInfo в системную кучу по умолчанию, после чего владение этими буферами передается вызывающему объекту.

Значение TRUE указывает, что строки должны быть скопированы в системную кучу.

False указывает, что строки в ErrorInfo указывают на внутренние структуры данных RPC; вызывающий объект не может освободить или выполнить запись в них, и они становятся недействительными при вызове функции RpcErrorEndEnumeration .

[out] ErrorInfo

Указатель на структуру RPC_EXTENDED_ERROR_INFO . См. заметки.

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

Если copyStrings имеет значение false, вызов функции не может завершиться ошибкой, если только ее параметры не являются недопустимыми. При извлечении последней расширенной записи об ошибке RpcErrorGetNextRecord возвращает RPC_S_OK. Все последующие вызовы возвращают RPC_S_ENTRY_NOT_FOUND.

При любой ошибке позиция перечисления не будет расширена.

Примечание Список допустимых кодов ошибок см. в разделе Возвращаемые значения RPC.
 

Комментарии

После ввода в ErrorInfo необходимо задать следующие поля:

  • Для версии необходимо задать значение RPC_EEINFO_VERSION.
  • Параметр NumberOfParameters должен иметь значение от нуля до MaxNumberOfEEInfoParams. Вызывающие абоненты могут свободно предоставлять место для любого количества параметров. Если количество параметров, предоставленных вызывающим абонентом, меньше числа параметров в расширенной записи об ошибке, возвращается RPC_S_BUFFER_TOO_SMALL.
  • Флаги должны быть равны нулю или EEInfoUseFileTime . Если значение Flags равно нулю, используется элемент SystemTime объединения u. Если указано значение EEInfoUseFileTime , используется член FileTime объединения u.
Другие поля ErrorInfo игнорируются при входных данных.

В выходных данных поля в ErrorInfo заполняются следующим образом:

  • Версия не изменилась.
  • ComputerName имеет значение NULL , если в записи нет имени компьютера, или строка Юникода, если имя компьютера существует в расширенной записи сведений об ошибке. При значении NULL можно предположить последнюю запись с именем компьютера, однако имя компьютера может быть удалено из-за нехватки памяти. Имя_компьютера — это неквалифицированные DNS-имя.
  • ProcessID — это ИДЕНТИФИКАТОР процесса, в котором возникла запись.
  • SystemTime или FileTime — это время создания записи, выраженное в UCT, для компьютера, на котором была создана запись. Значение FileTime или SystemTime допустимо в зависимости от того, используется ли EEInfoUseFileTime .
  • GeneratingComponent — это код для создаваемого компонента.
  • Status — это код состояния записи.
  • DetectionLocation — это код для расположения обнаружения.
  • Флаги указывают, отсутствуют ли записи. Если одна или несколько записей отсутствуют после отсутствия текущей записи, устанавливается EEInfoNextRecordsMissing . Если одна или несколько записей до текущей записи отсутствует, устанавливается EEInfoPreviousRecordsMissing .
  • NumberOfParameters указывает истинное число параметров. Если вызывающий объект указал пространство для большего количества параметров на входных данных, чем в записи, это поле содержит количество используемых параметров.
  • Параметры — это фактические параметры, предоставляемые в виде массива RPC_EE_INFO_PARAM структур со структурами NumberOfParameters .

Требования

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

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

Получение сведений об ошибке расширенного RPC

RPC_EE_INFO_PARAM

RPC_ERROR_ENUM_HANDLE

RPC_EXTENDED_ERROR_INFO

RpcErrorEndEnumeration

RpcErrorStartEnumeration