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.
V systému Windows Vista a novějších verzích Systému Windows zahrnuje model sjednocených vlastností zařízenívlastnost stavu zařízení a vlastnost kódu problému. Model sjednocených vlastností zařízení používá klíče vlastností k reprezentaci těchto vlastností.
Windows Server 2003, Windows XP a Windows 2000 nepodporují klíče vlastností sjednoceného modelu vlastností ani nepodporují odpovídající hodnoty položek registru, které představují tyto vlastnosti. Odpovídající informace je však možné načíst voláním funkce CM_Get_DevNode_Status . Chcete-li zachovat kompatibilitu se staršími verzemi systému Windows, systém Windows Vista a novější verze také podporují CM_Get_DevNode_Status. Pro přístup k vlastnostem zařízení byste ale měli použít klíče vlastností sjednoceného modelu vlastností zařízení.
Kromě toho ve Windows 8 a novějších verzích Systému Windows existuje také vlastnost stavu problému. Tato vlastnost obsahuje hodnotu NTSTATUS , která může obsahovat další informace týkající se kódu problému nastaveného na zařízení. Pokud je hodnota stavu problému STATUS_SUCCESS, nebyly při nastavení kódu problému na zařízení k dispozici žádné další informace týkající se kódu problému.
Informace o použití klíčů vlastností pro přístup k vlastnostem ovladače zařízení v systému Windows Vista a novějších verzích naleznete v tématu Přístup k vlastnostem instance zařízení (Windows Vista a novější).
Pokud chcete získat přístup ke stavu a kódu problému instance zařízení v systémech Windows Server 2003, Windows XP a Windows 2000, zavolejte CM_Get_DevNode_Status a zadejte následující parametry:
Nastavte pulStatus na ukazatel na hodnotu typu ULONG, která přijímá stavové bitové příznaky nastavené pro instanci zařízení. Hodnota stavu může být libovolná kombinace bitových příznaků s předponou "DN_", která jsou definována v cfg.h.
Nastavte pulProblemNumber na ukazatel typu ULONG, který obdrží číslo problému nastavené pro instanci zařízení. Číslo problému je jednou z konstant s předponou "CM_PROB_", která je definována v cfg.h. CM_Get_DevNode_Status nastaví číslo problému pouze v případě, že je DN_HAS_PROBLEM nastavena v pulStatus.
Nastavte dnDevInst na popisovač instance zařízení na zařízení, pro které se má načíst stav a kód problému.
Nastavte ulFlags na nulu.
Pokud volání CM_Get_DevNode_Status proběhne úspěšně, CM_Get_DevNode_Status načte požadovaný stav a kód problému instance zařízení a vrátí CR_SUCCESS. Pokud volání funkce selže, CM_Get_DevNode_Status vrátí jeden z kódů chyb s předponou "CR_", která jsou definována v Cfgmgr32.h.
Vyhledání kódu problému a stavu problému pro zařízení pomocí Správce zařízení
Pokud dojde k problému se zařízením, Správce zařízení překrytí ikonu zařízení ve stromovém zobrazení žlutým trojúhelníkem s vykřičníkem. Když kliknete pravým tlačítkem na zařízení a zvolíte Vlastnosti, zobrazí se dialogové okno s dalšími informacemi o zařízení. Kód problému se zobrazí na kartě Obecné v poli Stav zařízení .
Vlastnost Stav problému se zobrazí v rozevíracím seznamu Vlastnost na kartě Podrobnosti pro zařízení ve Správci zařízení.
Identifikování kódu a stavu problémů zařízení pomocí ladicího programu
Pokud chcete v ladicím programu jádra zobrazit všechna zařízení s kódem problému, použijte příkaz !devnode 0 21. Zobrazí se také stav problému na zařízení. Například:
0: kd> !devnode 0 21
Dumping IopRootDeviceNode (= 0x85d37e30)
DevNode 0x8ad6ab78 for PDO 0x81635c30
InstancePath is "ROOT\DIINSTALLDRIVER\0003"
ServiceName is "isolated"
State = DeviceNodeRemoved (0x312)
Previous State = DeviceNodeInitialized (0x302)
Problem = CM_PROB_FAILED_ADD
Problem Status = 0xc00000bb
Kód problému a stav problému můžete zobrazit také tak, že na adrese DEVICE_NODE vydáte !devnode :
0: kd> !devnode 0x8ad6ab78
DevNode 0x8ad6ab78 for PDO 0x81635c30
Parent 0x85d37e30 Sibling 0x8adee670 Child 0000000000
...
Problem = CM_PROB_FAILED_ADD
Problem Status = 0xc00000bb