| Предыдущий | Следующий |
| OSS_BERDER_DLL_NOT_LINKED | OSS_OPEN_TYPE_ERROR |
OSS_PER_DLL_NOT_LINKED
OSS_PER_DLL_NOT_LINKED (0x8009302B) — результат OSS ASN.1 runtime для отсутствующей DLL codec Packed Encoding Rules. Запрошенная PER-операция не может начаться, потому что modular runtime не содержит component, реализующий aligned или unaligned Packed Encoding Rules. Поскольку выбор aligned или unaligned PER имеют решающее значение для этого условия, диапазон HRESULT Microsoft следует рассматривать вместе с документацией return code OSS Nokalva. Начните исследование с фиксации статус loader PER module, затем отделите закодированное значение от сгенерированных артефактов, аргументов вызова и runtime-пакета, реально загруженного процессом.
Интерпретация во время выполнения
На границе отсутствующей DLL codec Packed Encoding Rules зафиксируйте первую OSS-функцию, вернувшую значение, и отметьте, выполнялись ли encode, decode, copy, compare, constraint validation или настройка trace. Сохраните выбранный PDU, правила кодирования и schema и версия generated code; иначе внешний certificate/security wrapper может скрыть полезный результат codec за общей ошибкой.
Диагностическая запись
| Запишите | Диагностическое значение |
|---|---|
| выбор aligned или unaligned PER | Локализует конкретное сообщение, allocation, module или границу API |
| статус loader PER module | Отделяет поведение, зависящее от payload, от состояния сборки и процесса |
| schema и версия generated code | Делает сравнение воспроизводимым без изменения исходного артефакта |
Небольшие эксперименты с высокой диагностической ценностью
- выполните round-trip минимального constrained integer
- сравните bit length с независимой PER implementation
- проверьте alignment mode на обоих endpoints
При проверке сохраняйте исходные байты или object graph неизменными выполните round-trip минимального constrained integer. Изменение статус loader PER module после reload, замены plugin, restart или развертывания schema является данными о состоянии runtime, а не основанием выбрасывать reproducer. Когда schema и версия generated code указывает на конкретное сообщение, сохраняйте криптографический хеш и минимальный безопасный образец вместо записи certificate, subscriber, credential или private-key material.
Избегайте неверного обходного решения
Fallback на BER полностью меняет wire format и не сохраняет совместимость с PER protocol.
Матрица решений
| Контролируемое наблюдение | Подтверждаемый вывод |
|---|---|
| выполните round-trip минимального constrained integer | Изменившийся результат локализует первый предлагаемый контроль вместо слепого повтора |
| выбор aligned/unaligned PER различается между успешным и неуспешным случаем | Разница локализует отсутствие DLL codec Packed Encoding Rules до изменения несвязанных настроек |
| Независимый decoder принимает тот же артефакт | Проверьте сгенерированную schema, выбранные rules, ABI и необязательные модули OSS, прежде чем объявлять байты недействительными |
| Новый control object изменяет результат | Исследуйте инициализацию, lifecycle, владение allocator, изменение конфигурации и concurrent access |
Инструментирование
Записывайте полный 32-битный HRESULT и младший OSS return number вместе с направлением операции, символическим PDU, правилом кодирования, числом байтов и идентификатором generated table. Там, где выбор aligned или unaligned PER может раскрывать чувствительные данные, хеш с ограниченным структурным фрагментом безопаснее полного payload. Используйте статус loader PER module вместе с путями и версиями модулей OSS, записанными один раз на процесс, чтобы сопоставлять различия упаковки без засорения обычной диагностики.
Подтверждение восстановления
Разверните PER support, сгенерированный для той же schema, и проверьте граничные значения и bit alignment. Тест восстановления для выполните round-trip минимального constrained integer должен повторять ту же операцию при той же schema и encoding rule, сохранять один намеренно недействительный control и проверять владение/очистку после обоих исходов. Успех после непроанализированного повтора не доказывает, что выбор aligned или unaligned PER теперь соответствует контракту codec.
Технические ссылки
- Microsoft: определения HRESULT OSS ASN.1
- OSS Nokalva: return codes encoder/decoder
- OSS Nokalva: runtime-функции и инициализация control
- Соответствующая спецификация ASN.1 или деталь runtime
Нужно найти другой код? Найти другой код состояния или ошибки.