| Предыдущий | Следующий |
| MQ_ERROR_SENDERID_BUFFER_TOO_SMALL | MQ_ERROR_CANNOT_IMPERSONATE_CLIENT |
MQ_ERROR_SECURITY_DESCRIPTOR_TOO_SMALL
Что означает MQ_ERROR_SECURITY_DESCRIPTOR_TOO_SMALL
MQ_ERROR_SECURITY_DESCRIPTOR_TOO_SMALL — Буфер, переданный MQGetQueueSecurity, слишком мал для полного дескриптора безопасности очереди. Сначала нужно получить достаточный размер и только затем разбирать ACL.
MQGetQueueSecurity возвращает бинарный SECURITY_DESCRIPTOR переменного размера. Этот код означает, что вызывающая сторона подготовила недостаточно памяти для полного descriptor; проверять ACL до успешного получения всей структуры бессмысленно.
Что проверить
- Используйте требуемый размер, возвращённый MQGetQueueSecurity, чтобы выделить новый буфер.
- Повторите чтение и только после успешного получения полного SECURITY_DESCRIPTOR разбирайте owner, group, DACL и ACE.
- Не путайте этот код с MQ_ERROR_ILLEGAL_SECURITY_DESCRIPTOR: здесь существующий descriptor может быть полностью корректным, проблема только в размере выходного буфера.
Как подтвердить исправление
Проверка должна получить полный дескриптор, успешно разобрать его стандартными Windows API и повторить чтение с заведомо малым буфером как отрицательный тест.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
