Что означает код NTSTATUS 0xC000010D (STATUS_CANNOT_IMPERSONATE)?

 
Предыдущий Следующий
STATUS_NO_GUID_TRANSLATION STATUS_IMAGE_ALREADY_LOADED

STATUS_CANNOT_IMPERSONATE

Сервер пока не может олицетворить клиента именованного канала

Эти статусы относятся к механизму именованных каналов Windows. Для STATUS_CANNOT_IMPERSONATE: именованный канал может иметь несколько экземпляров с одним именем, но каждый экземпляр обладает собственным состоянием, буфером, дескрипторами, типом, режимом чтения и режимом ожидания.

Олицетворение через именованный канал использует контекст безопасности последнего сообщения, прочитанного от клиента. Если сервер ещё не прочитал сообщение клиента из этого канала, у файловой системы канала нет контекста маркера клиента, который можно было бы применить.

Для диагностики STATUS_CANNOT_IMPERSONATE запишите имя канала, сторону сервера или клиента, число экземпляров, блокирующий или неблокирующий режим, байтовый режим или режим сообщений, состояние перекрывающейся операции, а также находится ли дескриптор в состоянии подключения, прослушивания, закрытия или отключения.

Что проверить

  • Прочитайте запрос клиента до вызова ImpersonateNamedPipeClient.
  • Убедитесь, что дескриптор относится к серверной стороне канала.
  • Если после чтения олицетворение по-прежнему завершается ошибкой, проверьте уровень олицетворения клиента.

Справочные материалы по STATUS_CANNOT_IMPERSONATE


Нужно найти другой код? Найти другой код состояния или ошибки.