Megosztás a következőn keresztül:


NDF-funkciók használata

A Microsoft nyilvános API-n keresztül hozzáférést biztosít az NDF-funkciókhoz. Probléma esetén az alkalmazás ezzel az API-val használhatja ezt a funkciót egy adott alkalmazás kontextusában.

Az NDF-sel végzett diagnosztikának három fázisa van: incidens létrehozása, diagnosztikák és javítások futtatása, valamint az incidens bezárása. Ez az áttekintés azt jelzi, hogy mely NDF-függvények lehetnek relevánsak egy adott forgatókönyv esetében. Az egyes függvényekre vonatkozó részletes információk az NDF-referencia szakaszban találhatók.

Incidens létrehozása

Az NDF diagnosztikai munkamenetének diagnosztizálásához egy adott incidens szükséges. Számos függvény alkalmazható incidens létrehozására. Válassza ki azt a függvényt, amely a legszorosabban megfelel annak, amit az alkalmazás megpróbált végrehajtani a hiba bekövetkeztekor.

Diagnosztikák és javítások futtatása

A diagnosztikai és javítási funkciók kétféleképpen indíthatóak el.

  • A Windows felhasználói felület használata (ajánlott)

    Ha a standard Windows felhasználói felületen fut, egyszerűen meghívhatja a NdfExecuteDiagnosis függvényt. Az NDF varázsló elindítja és segíti a felhasználót a probléma azonosításában (és ha lehetséges, és megoldásában). A függvény a folyamat befejezése után fog visszatérni. A felhasználói felület opcionálisan modális az alkalmazáshoz.

  • Egyéni felhasználói felület használata (csak Windows 7 és újabb verziók esetén)

    Különböző függvények használhatók olyan helyzetekben, ahol nem jelenik meg felhasználói felület, vagy ha a szokásos Windows-felületet nem használja (például a Media Centert, a beágyazott alkalmazásokat és a parancssort). Ez a beállítás megkerüli az NDF varázslóban biztosított felhasználói élmény funkciót, amely magában foglalja az eredmények teljes körűen támogatott kiváltó okokra való korlátozását, valamint a javítások ajánlott sorrendben történő bemutatására szolgáló heurisztikákat. Ha ezeket a függvényeket használja, önnek kell biztosítania az ilyen funkcionalitást. Biztosítania kell, hogy a diagnosztikai eredmények által használt memóriát felszabadítsa.

    A diagnosztika megkezdéséhez hívja meg az NdfDiagnoseIncident függvényt. A talált problémákat a rendszer RootCauseInfo olyan struktúrák gyűjteményeként adja vissza az alkalmazásnak, amelyek ismert kiváltó okokat és lehetséges javításokat írnak le.

    Miután kiválasztott egy javítást (vagy megkérte a felhasználót, hogy válasszon ki egy javítást), NdfRepairIncident kell meghívni a javítás megkísérléséhez és annak megállapításához, hogy a probléma megoldódott-e.

    Bizonyos esetekben a javítás sikeres lehet, de nem oldja meg a problémát. Ilyen esetekben ajánlott bezárni a meglévő incidenst, majd megnyitni egy újat. Ez biztosítja, hogy a kezdeti javítás által fel nem tárt új problémák azonosíthatók legyenek. Tegyük fel például, hogy nem voltak látható vezeték nélküli hálózatok. Az adapter alaphelyzetbe állítása után a vezeték nélküli hálózatok láthatók, de egyik sem szerepel az előnyben részesített listán. Ez egy új probléma, amely új diagnózist igényelne az azonosításhoz. Ha egy ilyen második diagnosztikai kísérlet nem azonosít további problémákat, egy másik javítással meg lehet kísérelni az eredeti probléma megoldását, vagy a felhasználó értesülhet arról, hogy a probléma nem oldható meg.

    NdfDiagnoseIncident és NdfRepairIncident szinkron API-k. Ha meg szeretné szakítani a függvények által kezdeményezett tevékenységet, hívja meg NdfCancelIncident másik szálról. A függvény a következő elérhető leállítási ponton tér vissza a diagnosztikai vagy javítási folyamat során.

    Bármikor meghívhatja NdfGetTraceFile, hogy lekérje az NDF-napló másolatát az aktuális diagnosztikai munkamenethez, és belefoglalja az alkalmazásnaplókba. A napló lekérése után a rendszer kiüríti a naplót, és a további hívások csak a függvény utolsó hívása után történt eseményeket kérdezik le.

Incidens bezárása

Ha végzett az incidens diagnosztizálásával, hívja meg NdfCloseIncident, hogy felszabadítsa az adott incidens diagnosztikáihoz társított rendszererőforrásokat. (Vegye figyelembe, hogy ez nem szabadít fel NdfDiagnoseIncidentáltal létrehozott objektumokat.