Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Драйверы могут определять пользовательские константы IO_ERR_XXXX для использования в качестве значений ErrorCode при ведении журнала ошибок. Пары драйверов, написанных вместе, также могут определять пользовательские значения STATUS_XXXX для запросов IRP_MJ_INTERNAL_DEVICE_CONTROL .
На следующей схеме показаны битовые поля в 32-разрядном значении NTSTATUS.
Поле Sev , показанное на предыдущей схеме, указывает код серьезности, который должен быть одним из следующих системных значений:
СТАТУС_ПРИОРИТЕТ_УСПЕХ
Указывает успешное значение NTSTATUS, например STATUS_SUCCESS, или значение IO_ERR_RETRY_SUCCEEDED в пакетах журнала ошибок.
СТАТУС_СТЕПЕНЬ_ИНФОРМАЦИИ
Указывает информационное значение NTSTATUS, например STATUS_SERIAL_MORE_WRITES.
СТАТУС_СЕРЬЁЗНОСТЬ_ПРЕДУПРЕЖДЕНИЕ
Указывает предупреждающее значение NTSTATUS, например STATUS_DEVICE_PAPER_EMPTY.
СТАТУС_СЕРЬЕЗНОСТЬ_ОШИБКА
Указывает значение NTSTATUS ошибки в пакетах журнала ошибок, например, STATUS_INSUFFICIENT_RESOURCES для значения FinalStatus или IO_ERR_CONFIGURATION_ERROR для значения ErrorCode.
Большинство общедоступных констант IO_ERR_XXX относятся к категории STATUS_SEVERITY_ERROR.
Код объекта указывает объект, создающий ошибку. Для новых значений IO_ERR_XXXX драйверы указывают значение FACILITY_IO_ERROR_CODE для объекта. Для пользовательских значений STATUS_XXX значение параметров для функциональной области определяется драйвером.
Бит C указывает, определено ли значение клиентом или корпорацией Майкрософт. Бит устанавливается для определяемых клиентом значений и очищается для определенных корпорацией Майкрософт значений.
Драйверы могут определять новые значения IO_ERR_XXXX, чтобы определить пользовательские сообщения об ошибках в системном журнале событий. Описание определения значений NTSTATUS и сообщений об ошибках, которые они определяют, см. в разделе "Определение пользовательских типов ошибок".
Пары драйверов могут определять значения STATUS_XXXX, предназначенные для обмена сведениями о частных запросах IRP_MJ_INTERNAL_DEVICE_CONTROL от нижнего к верхнему драйверу пары.
Драйвер класса должен сопоставить любое частное значение STATUS_XXXX со значением NTSTATUS, определяемым системой, при завершении IRP, если для этого IRP может вызываться существующая подпрограмма IoCompletion драйвера более высокого уровня.
Для парных драйверов дисплея и минипортов видео, драйвер видеопорта выполняет сопоставление между общедоступными значениями STATUS_XXX и константами Win32, которые возвращаются минипортами видео. Дополнительные сведения см. в разделе "Драйверы минипорта видео" в модели драйвера для отображения Windows 2000.
Драйверы не могут использовать пользовательские значения NTSTATUS для irPs, которые можно получить в пользовательском режиме, так как только системные значения можно преобразовать в коды ошибок Win32.