Udostępnij przez


Określanie, czy weryfikator sterowników statycznych obsługuje sterownik lub bibliotekę

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.