Udostępnij za pośrednictwem


Omówienie debugowania NDIS

Dwa podstawowe narzędzia do debugowania sterownika sieciowego to śledzenie debugowania i rozszerzenia specyfikacji interfejsu sterownika sieciowego (NDIS). Aby uzyskać więcej informacji na temat śledzenia debugowania, zobacz Włączanie śledzenia debugowania NDIS. Aby uzyskać więcej informacji na temat rozszerzeń debugowania NDIS, zobacz Rozszerzenia NDIS, które udostępnia pełną listę poleceń rozszerzeń znalezionych w module rozszerzenia Ndiskd.dll.

Użyj polecenia ndiskd.netreport, aby wygenerować raport wizualny przedstawiający bieżące karty i protokoły.

Zrzut ekranu kolorowych danych wyjściowych ndiskd.netreport z dwoma kolumnami, które przedstawiają różne karty sieciowe.

Następnie polecenie debugera jądra ndiskd.netadapter jest dobrym miejscem do rozpoczęcia badania bieżącego zestawu sterowników.

1: kd> !ndiskd.netadapter
    Driver             NetAdapter          Name
    ffffdf8015a98380   ffffdf8015aa11a0    Microsoft ISATAP Adapter #2
    ffffdf801418d650   ffffdf80140c71a0    Microsoft Kernel Debug Network Adapter

Dodatkowym narzędziem do debugowania sterownika sieciowego jest kolekcja regularnych rozszerzeń debugowania, które są przydatne do uzyskiwania informacji o debugowaniu. Na przykład wprowadzenie !stack 2 ndis! wyświetla wszystkie wątki w stosie rozpoczynającym się od ndis!. Te informacje mogą być przydatne do debugowania zawieszeń i zatrzymań. Aby uzyskać ogólne informacje na temat rozpoczynania pracy z usługą WinDbg, zobacz Wprowadzenie do debugowania systemu Windows.

Weryfikator sterowników

Innym przydatnym narzędziem do testowania sterownika NDIS jest Weryfikator NDIS. Aby uzyskać więcej informacji, zobacz Reguły sterowników NDIS i statycznego weryfikatora sterowników.

Zasoby debugowania NDIS

Odcinek 175 programu Defrag Tools obejmuje debugowanie NDIS — Defrag Tools #175 — Debugowanie stosu sieciowego.

Archiwa blogów zespołu NDIS są dostępne na blogu NDIS.

Kontrole błędów NDIS

Istnieje również kod sprawdzania błędów specyficzny dla NDIS, sprawdzanie błędów 0x7C (BUGCODE_NDIS_DRIVER). Aby uzyskać pełną listę jego parametrów, zobacz Sprawdzanie błędów 0x7C.

Typowym sprawdzaniem usterek związanych z błędem NDIS jest sprawdzanie błędów 0xD1: DRIVER_IRQL_NOT_LESS_OR_EQUAL , które mogą być spowodowane przez sam kod sterownika. Jest to najprawdopodobniej usterka lub uszkodzenie pamięci, które ostatecznie manifestuje się jako zły wskaźnik.

Innym typowym problemem jest błąd kontrolny 0x9F: DRIVER_POWER_STATE_FAILURE.

Pierwszym krokiem ze wszystkimi sprawdzaniami błędów jest zlokalizowanie dobrego pliku zrzutu, załadowanie go w debugerze systemu Windows i użycie polecenia !analyze . Aby uzyskać więcej informacji, zobacz Using the !analyze Extension (Korzystanie z rozszerzenia !analyze).