Site icon EfmSoft

Что означает код HRESULT 0xC00E0021 (MQ_ERROR_ILLEGAL_SECURITY_DESCRIPTOR)?

 
Предыдущий Следующий
MQ_ERROR_UNSUPPORTED_FORMATNAME_OPERATION MQ_ERROR_SENDERID_BUFFER_TOO_SMALL

MQ_ERROR_ILLEGAL_SECURITY_DESCRIPTOR

Что означает MQ_ERROR_ILLEGAL_SECURITY_DESCRIPTOR

MQ_ERROR_ILLEGAL_SECURITY_DESCRIPTOR — Переданный SECURITY_DESCRIPTOR структурно недействителен для операции с очередью. Это отличается от отказа в доступе: Message Queuing не может принять сам дескриптор безопасности.

Здесь MSMQ отвергает сам SECURITY_DESCRIPTOR как некорректную структуру. Это принципиально отличается от MQ_ERROR_ACCESS_DENIED: до проверки прав пользователя дело может вообще не дойти, если owner/group/DACL или внутренние смещения дескриптора заданы неверно.

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

  • Проверьте дескриптор стандартными средствами Windows на структурную корректность до передачи в MSMQ.
  • Если дескриптор собран программно, проверьте формат self-relative/absolute, наличие и корректность DACL, owner и длину буфера.
  • Сравните с дескриптором, прочитанным у рабочей очереди, и меняйте только требуемые ACE вместо ручной сборки всей бинарной структуры с нуля.

Как подтвердить исправление

Исправление подтверждено, когда тот же дескриптор принимается MSMQ как корректный, после чего отдельно проверяются уже права доступа, а не структура security descriptor.

Технические ссылки


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

Exit mobile version