| Предыдущий | Следующий |
| RPC_S_DO_NOT_DISTURB | RPC_S_SYSTEM_HANDLE_TYPE_MISMATCH |
RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED
Вызов превышает транспортный предел системных дескрипторов
RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED применяется к параметрам MIDL, помеченным system_handle. Эти дескрипторы представляют объекты ядра, например файлы, события, процессы, секции, маркеры или сокеты, и дублируются для локального вызова RPC. Среда выполнения ограничивает число дескрипторов, передаваемых одним запросом.
Подсчитывайте дескрипторы после развёртывания всех массивов и необязательных параметров, а не только аргументы верхнего уровня. Переработайте массовые операции, разбивая дескрипторы на партии, или передавайте устойчивые идентификаторы, которые сервер открывает по явной политике безопасности. Закрытие несвязанных дескрипторов процесса не уменьшает число, закодированное в этом конкретном запросе.
Что проверить
- До вызова заглушки запишите точное число дескрипторов и список их типов.
- Разделяйте большие массивы на ограниченные партии с ясной семантикой частичных ошибок.
- Помните, что передача системных дескрипторов разрешена только для вызовов на том же компьютере.
Ссылки
- Microsoft: атрибут MIDL system_handle
- Microsoft: корреляция массивов дескрипторов
- Microsoft: статусы системных дескрипторов RPC
Нужно найти другой код? Найти другой код состояния или ошибки.
