Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Statyczny weryfikator sterowników (SDV) w pełni obsługuje sterowniki i biblioteki WDM, KMDF, NDIS i Storport oraz ma ograniczoną obsługę innych sterowników. Aby określić, czy sterownik lub biblioteka jest obsługiwana i poprawnie skonfigurowana, zapoznaj się z wymaganiami opisanymi w tej sekcji.
Wymagania dotyczące sterownika lub biblioteki
Pełny zestaw reguł można uruchomić w narzędziu analizy SDV, jeśli sterownik lub biblioteka spełnia jeden z następujących warunków i nie łączy się z żadną z bibliotek platform klas wymienionych poniżej.
- Masz sterownik lub bibliotekę WDM.
- Masz sterownik lub bibliotekę, która łączy się z biblioteką WdfLdr.lib lub WdfDriverEntry.lib.
- Masz sterownik lub bibliotekę, która łączy się z biblioteką NDIS.lib.
- Masz sterownik lub bibliotekę, która łączy się z biblioteką Storport.lib.
Jeśli masz sterownik, który znajduje się poza powyższymi warunkami, SDV uzna sterownik za „ogólny” i uruchomi ograniczony zestaw testów.
Ponadto należy pamiętać, że biblioteki zweryfikowane przez sdV muszą być bibliotekami sterowników trybu jądra, a nie ogólnymi bibliotekami C lub C++.
Statyczny weryfikator sterowników obsługuje sterownik lub bibliotekę, która przekazuje te warunki, nawet jeśli sterownik lub biblioteka łączy się z wieloma bibliotekami narzędzi.
Ponadto, aby przeprowadzić analizę, sdV wymaga, aby:
- Sterownik zadeklarował przynajmniej jeden punkt wejściowy stosując deklaracje typów ról funkcji.
- Sterownik kompiluje i łączy się poprawnie (w programie Visual Studio przy użyciu programu MSBuild).
- Jeśli sterownik lub biblioteka używa usługi KMDF, sterownik lub biblioteka używa KDMF w wersji 1.7 lub nowszej.
- Jeśli sterownik lub biblioteka używa sieci NDIS, używa usługi NDIS w wersji 6.0, 6.1, 6.20, 6.30 lub 6.40. Należy pamiętać, że ta lista może ulec zmianie.
- Sterownik nie łączy modeli sterowników (na przykład KMDF z WDM lub KMDF z NDIS).
Istnieją inne czynniki wpływające na jakość i dokładność wyników analizy statycznej. Te czynniki obejmują:
- Korzystanie z bibliotek narzędzi, które nie zostały przetworzone przez sdV.
- Rozmiar sterownika, szczególnie jeśli ma więcej niż 100 000 wierszy kodu.
- Korzystanie z funkcji specyficznych dla języka, takich jak funkcje wirtualne i arytmetyka wskaźnika.
Wymagania dotyczące projektu programu Visual Studio
Aby korzystać ze statycznego weryfikatora sterowników, projekt programu Visual Studio musi mieć następujące ustawienia:
- UseDebugLibraries = fałsz
- Platforma = Win32 (x86) lub x64
Biblioteki frameworku klas
Jeśli masz sterownik lub bibliotekę WDM i chcesz uruchomić sdV, sterownik lub biblioteka nie może łączyć się z jedną z następujących bibliotek struktury klas.
| 1394bus.lib | fltMgr.lib | rdbss.lib | usbrpm.lib |
| acpi.lib | FsDepends.lib | RNDISMP.lib | videoprt.lib |
| armppm.lib | fwpkclnt.lib | RNDISMP6.lib | vwififlt.lib |
| ataport.lib | hidclass.lib | RNDISMPX.lib | watchdog.lib |
| ath_hwpci.lib | hidparse.lib | rpcxdr.lib | win32k.lib |
| athhal.lib | hwpolicy.lib | Saha.lib | winhv.lib |
| battc.lib | ipmidrv_hrmcust.lib | scsiport.lib | WMBBCLASS.lib |
| BdaSup.lib | irt30.lib | smclib.lib | |
| bdl.lib | irt30.lib | Soft1667FaultInjectionLimpetPool.lib | |
| btampm.lib | ks.lib | SoftFCKernel.lib | |
| bthport.lib | ksecdd.lib | SoftFCLimpetPool.lib | |
| BTHPRINT.lib | ksmartcpu.lib | SoftSATAKernel.lib | |
| classpnp.lib | mcd.lib | SoftStorageLimpetPool.lib | |
| clfs.lib | mpio.lib | srvnet.lib | |
| cng.lib | mrxsmb.lib | storvsp.lib | |
| crashdmp.lib | msnfsflt.lib | stream.lib | |
| csr_vfp_avdtp.lib | msrpc.lib | tape.lib | |
| diskdump.lib | mup.lib | tbs.lib | |
| drmk.lib | ndistapi.lib | tcpip.lib | |
| dumpata.lib | netio.lib | tdi.lib | |
| dumpfve.lib | ntasn1k.lib | termdd.lib | |
| dxapi.lib | parallel.lib | USBCAMD.lib | |
| dxg.lib | pciidex.lib | USBCAMD2.lib | |
| dxgkrnl.lib | portcls.lib | usbd.lib | |
| dxgmms1.lib | protogon.lib | usbport.lib |
Biblioteki narzędzi
Weryfikator sterowników statycznych obsługuje sterownik lub bibliotekę zawierającą linki do wielu bibliotek narzędziowych, jeśli sterownik lub biblioteka są zgodne z wymaganiami sterownika lub biblioteki.
| Nazwa pliku |
|---|
| BufferOverflowK.lib |
| hal.lib |
| ntoskrnl.lib |
| ntstrsafe.lib |
| rtlver.lib |
| sehupd.lib |
| wdm.lib |
| wmilib.lib |
| wdmsec.lib |
Biblioteki narzędzia Static Driver Verifier i Microsoft Class Framework
Jeśli pracujesz ze sterownikami WDM, które muszą łączyć się z biblioteką frameworka klas wymienioną na liście Bibliotek frameworka klas, sterownik nie przejdzie sprawdzenia warunku Weryfikatora Sterowników Statycznych. Istnieją jednak pewne ogólne reguły, które nadal mogą być używane, takie jak reguła nullCheck w celu przeprowadzenia pewnego poziomu weryfikacji statycznej.