Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ovladače mohou při protokolování chyb definovat vlastní konstanty IO_ERR_XXX , které se použijí jako hodnoty ErrorCode . Dvojice ovladačů, které jsou zapsány dohromady, mohou také definovat vlastní hodnoty STATUS_XXX pro požadavky IRP_MJ_INTERNAL_DEVICE_CONTROL .
Následující diagram znázorňuje bitová pole v 32bitové hodnotě NTSTATUS.
Pole Sev zobrazené v předchozím diagramu označuje kód závažnosti, který musí být jednou z následujících systémově definovaných hodnot:
STATUS_SEVERITY_SUCCESS
Označuje úspěšnou hodnotu NTSTATUS, například STATUS_SUCCESS, nebo hodnotu IO_ERR_RETRY_SUCCEEDED v paketech protokolu chyb.
STATUS_SEVERITY_INFORMATIONAL
Označuje informační hodnotu NTSTATUS, například STATUS_SERIAL_MORE_WRITES.
STATUS_SEVERITY_WARNING
Označuje hodnotu NTSTATUS typu upozornění; jako příklad lze uvést STATUS_DEVICE_PAPER_EMPTY.
STAV_ZÁVAŽNOST_CHYBY
Označuje hodnotu chyby NTSTATUS, například STATUS_INSUFFICIENT_RESOURCES pro hodnotu FinalStatus nebo IO_ERR_CONFIGURATION_ERROR pro hodnotu ErrorCode v chybových protokolech.
Většina veřejných konstant IO_ERR_XXX patří do kategorie STATUS_SEVERITY_ERROR.
Kód zařízení určuje zařízení, které chybu vygenerovalo. U nových hodnot IO_ERR_XXX určují ovladače hodnotu FACILITY_IO_ERROR_CODE pro zařízení. Pro vlastní hodnoty STATUS_XXX je význam různých hodnot pro zařízení definován ovladačem.
Bit jazyka C určuje, jestli je hodnota definovaná zákazníkem nebo microsoftem. Bit je nastavený pro hodnoty definované zákazníkem a vymaže se u hodnot definovaných Microsoftem.
Ovladače mohou definovat nové hodnoty IO_ERR_XXX k identifikaci vlastních chybových zpráv v protokolu událostí systému. Popis, jak definovat hodnoty NTSTATUS a chybové zprávy, které identifikují, naleznete v tématu Definování vlastních typů chyb.
Páry ovladačů mohou definovat hodnoty specifické pro ovladač STATUS_XXX, aby mohly komunikovat informace o soukromě definovaných IRP_MJ_INTERNAL_DEVICE_CONTROL žádostech od nižšího k vyššímu ovladači.
Ovladač třídy musí při dokončení protokolu IRP namapovat jakoukoli privátní hodnotu STATUS_XXX na hodnotu NTSTATUS definovanou systémem, pokud se pro tento protokol IRP může volat existující rutina IoCompletion ovladače vyšší úrovně.
U spárovaných ovladačů zobrazení a miniportu videa ovladač video portu mapuje hodnoty veřejného STATUS_XXX na konstanty definované systémem Win32, které vracejí ovladače miniportu videa. Další informace naleznete v tématu Video Miniport Ovladače v modelu ovladače zobrazení systému Windows 2000.
Ovladače nemůžou používat vlastní hodnoty NTSTATUS pro irps, které lze přijímat v uživatelském režimu, protože pouze hodnoty definované systémem lze přeložit do kódů chyb Win32.