| Предыдущий | Следующий |
| OSS_COMPARATOR_DLL_NOT_LINKED | OSS_MEM_MGR_DLL_NOT_LINKED |
OSS_COMPARATOR_CODE_NOT_LINKED
OSS_COMPARATOR_CODE_NOT_LINKED (0x80093025) — результат OSS ASN.1 runtime для отсутствующей в linked image реализации comparator. Запрошена операция сравнения, но generated/static comparator code отсутствует в executable или library. Поскольку link map и настройки dead-code elimination имеют решающее значение для этого условия, диапазон HRESULT Microsoft следует рассматривать вместе с документацией return code OSS Nokalva. Начните исследование с фиксации список generated comparator sources, затем отделите закодированное значение от сгенерированных артефактов, аргументов вызова и runtime-пакета, реально загруженного процессом.
Найдите точную границу codec
На границе отсутствующей в linked image реализации comparator зафиксируйте первую OSS-функцию, вернувшую значение, и отметьте, выполнялись ли encode, decode, copy, compare, constraint validation или настройка trace. Сохраните выбранный PDU, правила кодирования и symbol, на который ссылается проблемный type; иначе внешний certificate/security wrapper может скрыть полезный результат codec за общей ошибкой.
Данные, которые стоит сохранить
| Запишите | Диагностическое значение |
|---|---|
| link map и настройки dead-code elimination | Локализует конкретное сообщение, allocation, module или границу API |
| список generated comparator sources | Отделяет поведение, зависящее от payload, от состояния сборки и процесса |
| symbol, на который ссылается проблемный type | Делает сравнение воспроизводимым без изменения исходного артефакта |
Контролируемое воспроизведение
- соберите минимальный target, вызывающий comparator
- в качестве изоляции отключите whole-program elimination
- убедитесь, что generated sources не относятся к другой revision schema
При проверке сохраняйте исходные байты или object graph неизменными соберите минимальный target, вызывающий comparator. Изменение список generated comparator sources после reload, замены plugin, restart или развертывания schema является данными о состоянии runtime, а не основанием выбрасывать reproducer. Когда symbol, на который ссылается проблемный type указывает на конкретное сообщение, сохраняйте криптографический хеш и минимальный безопасный образец вместо записи certificate, subscriber, credential или private-key material.
С чем не следует путать это состояние
Этот сбой code path отличается от COMPARATOR_DLL_NOT_LINKED, который указывает на загрузку динамического module.
Матрица решений
| Контролируемое наблюдение | Подтверждаемый вывод |
|---|---|
| соберите минимальный target, вызывающий comparator | Изменившийся результат локализует первый предлагаемый контроль вместо слепого повтора |
| link map и настройки dead-code elimination различаются между успешным и неуспешным случаем | Разница локализует отсутствие реализации comparator в linked image до изменения несвязанных настроек |
| Независимый decoder принимает тот же артефакт | Проверьте сгенерированную schema, выбранные rules, ABI и необязательные модули OSS, прежде чем объявлять байты недействительными |
| Новый control object изменяет результат | Исследуйте инициализацию, lifecycle, владение allocator, изменение конфигурации и concurrent access |
Инструментирование
Записывайте полный 32-битный HRESULT и младший OSS return number вместе с направлением операции, символическим PDU, правилом кодирования, числом байтов и идентификатором generated table. Там, где link map и настройки dead-code elimination может раскрывать чувствительные данные, хеш с ограниченным структурным фрагментом безопаснее полного payload. Используйте список generated comparator sources вместе с путями и версиями модулей OSS, записанными один раз на процесс, чтобы сопоставлять различия упаковки без засорения обычной диагностики.
Критерии завершения
Явно прилинкуйте generated comparator implementation и добавьте функциональный post-link test. Тест восстановления для соберите минимальный target, вызывающий comparator должен повторять ту же операцию при той же schema и encoding rule, сохранять один намеренно недействительный control и проверять владение/очистку после обоих исходов. Успех после непроанализированного повтора не доказывает, что link map и настройки dead-code elimination теперь соответствует контракту codec.
Технические ссылки
- Microsoft: определения HRESULT OSS ASN.1
- OSS Nokalva: return codes encoder/decoder
- OSS Nokalva: runtime-функции и инициализация control
- Соответствующая спецификация ASN.1 или деталь runtime
Нужно найти другой код? Найти другой код состояния или ошибки.