| Предыдущий | Следующий |
| 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.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.