Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In Windows Vista en latere versies van Windows bevat het uniforme apparaateigenschapsmodel een eigenschap van de apparaatstatus en een eigenschap voor probleemcode. Het geïntegreerde apparaateigenschapsmodel maakt gebruik van eigenschapssleutels om deze eigenschappen weer te geven.
Windows Server 2003, Windows XP en Windows 2000 bieden geen ondersteuning voor de eigenschappensleutels van het uniforme eigenschapsmodel, noch ondersteunen ze de bijbehorende registervermeldingswaarden die deze eigenschappen vertegenwoordigen. De bijbehorende informatie kan echter worden opgehaald door de functie CM_Get_DevNode_Status aan te roepen. Om compatibiliteit met eerdere versies van Windows te behouden, ondersteunen Windows Vista en latere versies ook CM_Get_DevNode_Status. U moet echter de eigenschapssleutels van het uniforme apparaat-eigenschapsmodel gebruiken om toegang te krijgen tot de apparaateigenschappen.
Daarnaast is er in Windows 8 en latere versies van Windows ook een probleemstatuseigenschap. Deze eigenschap bevat een NTSTATUS-waarde die mogelijk aanvullende informatie bevat met betrekking tot een probleemcode die is ingesteld op het apparaat. Als de waarde van de probleemstatus STATUS_SUCCESS is, is er geen aanvullende informatie beschikbaar met betrekking tot de probleemcode toen de probleemcode op het apparaat werd ingesteld.
Zie Toegang tot eigenschappen van apparaatexemplaren (Windows Vista en hoger) voor informatie over het gebruik van eigenschapssleutels voor toegang tot eigenschappen van apparaatstuurprogramma's in Windows Vista en latere versies.
Als u toegang wilt krijgen tot de status en probleemcode voor een apparaatexemplaar op Windows Server 2003, Windows XP en Windows 2000, roept u CM_Get_DevNode_Status aan en geeft u de volgende parameters op:
Stel pulStatus in op een aanwijzer op een ULONG-waarde die de statusbitvlagmen ontvangt die zijn ingesteld voor een apparaatexemplaar. De statuswaarde kan elke combinatie zijn van de bitvlagmen met het voorvoegsel 'DN_' die zijn gedefinieerd in Cfg.h.
Stel pulProblemNumber in op een aanwijzer naar een ULONG-getypte waarde die het probleemnummer ontvangt dat is ingesteld voor een apparaatinstantie. Het probleemnummer is een van de constanten met het voorvoegsel 'CM_PROB_' die zijn gedefinieerd in Cfg.h. CM_Get_DevNode_Status stelt het probleemnummer alleen in als DN_HAS_PROBLEM is ingesteld in pulStatus.
Stel dnDevInst in op een apparaatinstantie-handle voor het apparaat waarvan de status en probleemcode moeten worden opgehaald.
Stel ulFlags in op nul.
Als de aanroep naar CM_Get_DevNode_Status slaagt, haalt CM_Get_DevNode_Status de aangevraagde status en probleemcode voor de apparaatinstantie op en retourneert CR_SUCCESS. Als de functie-aanroep mislukt, retourneert CM_Get_DevNode_Status een van de foutcodes met het voorvoegsel 'CR_' die zijn gedefinieerd in Cfgmgr32.h.
Het gebruik van Apparaatbeheer om probleemcode en probleemstatus voor een apparaat te vinden
Wanneer er een probleem is met een apparaat, legt Apparaatbeheer in de structuurweergave een gele driehoek met een uitroepteken over het pictogram van het apparaat. Als u met de rechtermuisknop op het apparaat klikt en Eigenschappen kiest, wordt er een dialoogvenster weergegeven met meer informatie over het apparaat. De probleemcode wordt weergegeven op het tabblad Algemeen in het veld Apparaatstatus .
De eigenschap Probleemstatus wordt weergegeven in de vervolgkeuzelijst Eigenschap op het tabblad Details voor het apparaat in Apparaatbeheer.
Het foutopsporingsprogramma gebruiken om probleemcode en probleemstatus voor een apparaat te vinden
Als u alle apparaten met een probleemcode in het kernelfoutopsporingsprogramma wilt weergeven, gebruikt u de extensie !devnode 0 21 . Hier ziet u ook de ProblemStatus op het apparaat. Voorbeeld:
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
U kunt ook probleemcode en probleemstatus bekijken door !devnode uit te voeren op een DEVICE_NODE-adres:
0: kd> !devnode 0x8ad6ab78
DevNode 0x8ad6ab78 for PDO 0x81635c30
Parent 0x85d37e30 Sibling 0x8adee670 Child 0000000000
...
Problem = CM_PROB_FAILED_ADD
Problem Status = 0xc00000bb