Функция RpcErrorStartEnumeration (rpcasync.h)
Функция RpcErrorStartEnumeration начинает перечисление расширенных сведений об ошибке.
Синтаксис
RPC_STATUS RpcErrorStartEnumeration(
RPC_ERROR_ENUM_HANDLE *EnumHandle
);
Параметры
EnumHandle
Указатель на дескриптор перечисления в виде структуры RPC_ERROR_ENUM_HANDLE . Структура должна быть выделена вызывающим объектом и не может быть освобождена до завершения операции. Все члены игнорируются при входных данных.
Возвращаемое значение
Успешное завершение возвращает RPC_S_OK.
Возвращает RPC_S_ENTRY_NOT_FOUND, если в потоке нет расширенных сведений об ошибке. Если выполняется перечисление, начиная с начала начинается второе перечисление.
Комментарии
Вызов функции RpcErrorStartEnumeration следует выполнить сразу после вызова, который вернул ошибку. В противном случае расширенные сведения об ошибке могут быть перезаписаны последующими вызовами. Дескрипторы перечисления должны быть освобождены с помощью функции RpcErrorEndEnumeration.
После вызова RpcErrorStartEnumeration можно безопасно использовать дескриптор перечисления из другого потока. Функция RpcErrorStartEnumeration принимает snapshot расширенных сведений об ошибке, а возвращающийся дескриптор перечисления работает с snapshot. Однако функции перечисления не синхронизируются между потоками с помощью RPC, поэтому за это отвечает вызывающий объект. Последующие вызовы RpcErrorStartEnumeration начинают новое перечисление и не создают второе перечисление для той же расширенной информации об ошибке.
Функция RpcErrorStartEnumeration может завершиться ошибкой, если недостаточно памяти для начала перечисления. Дескриптор перечисления может передаваться только в функции RpcError* и не может использоваться с другими функциями, такими как DuplicateHandle.
Переход указателя перечисления на одно перечисление не влияет на независимо запущенные перечисления.
Требования
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | rpcasync.h (включая Rpc.h) |
Библиотека | Rpcrt4.lib |
DLL | Rpcrt4.dll |