Partilhar via


Determinar se o Verificador de Driver Estático dá suporte ao driver ou à biblioteca

O SDV (Verificador de Driver Estático) dá suporte total a drivers e bibliotecas WDM, KMDF, NDIS e Storport e tem suporte limitado para outros drivers. Para determinar se o driver ou biblioteca tem suporte e está configurado corretamente, leia os requisitos descritos nesta seção.

Requisitos de driver ou biblioteca

Você poderá executar o conjunto completo de regras na ferramenta de análise de SDV se o driver ou a biblioteca atender a uma das seguintes condições e não vincular a nenhuma das bibliotecas de estrutura de classe listadas abaixo.

  • Você tem um driver ou biblioteca WDM.
  • Você tem um driver ou biblioteca vinculado a WdfLdr.lib ou WdfDriverEntry.lib.
  • Você tem um driver ou biblioteca que é vinculado ao NDIS.lib.
  • Você tem um driver ou biblioteca vinculado ao Storport.lib.

Se você tiver um driver fora das condições acima, o SDV considerará o driver "genérico" e executará um conjunto limitado de verificações.

Além disso, observe que as bibliotecas verificadas pelo SDV devem ser bibliotecas de driver no modo kernel, não bibliotecas C ou C++ gerais.

O Verificador de Driver Estático dá suporte a um driver ou biblioteca que passa essas condições mesmo que o driver ou biblioteca seja vinculado a várias bibliotecas de utilitários.

Além disso, para executar a análise, o SDV requer que:

  • O driver declarou pelo menos um ponto de entrada usando declarações de tipo de função.
  • O driver cria e vincula corretamente (no Visual Studio usando o MSBuild).
  • Se o driver ou a biblioteca usar KMDF, o driver ou a biblioteca usará o KDMF versão 1.7 ou posterior.
  • Se o driver ou a biblioteca usar o NDIS, ele usará o NDIS versão 6.0, 6.1, 6.20, 6.30 ou 6.40. Observe que essa lista está sujeita a alterações.
  • O driver não combina modelos de driver (por exemplo, KMDF com WDM ou KMDF e NDIS).

Há outros fatores que afetam a qualidade e a precisão dos resultados da análise estática. Esses fatores incluem:

  • Uso de bibliotecas de utilitários que não foram processadas pelo SDV.
  • Tamanho do driver, especialmente se ele tiver mais de 100 mil linhas de código.
  • Uso de recursos específicos da linguagem, como funções virtuais e aritmética de ponteiro.

Requisitos de projeto do Visual Studio

Para usar o Verificador de Driver Estático, o projeto do Visual Studio deve ter as seguintes configurações:

  • UseDebugLibraries = false
  • Platform = Win32 (x86) ou x64

Bibliotecas de estrutura de classe

Se você tiver um driver ou biblioteca WDM e quiser executar o SDV, o driver ou biblioteca não deverá vincular a uma das bibliotecas de estrutura de classe a seguir.

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

Bibliotecas de utilitários

O Verificador de Driver Estático dá suporte a um driver ou biblioteca que tenha links para várias bibliotecas de utilitários se o driver ou a biblioteca estiver em conformidade com os requisitos de Driver ou Biblioteca.

Nome do Arquivo
BufferOverflowK.lib
hal.lib
ntoskrnl.lib
ntstrsafe.lib
rtlver.lib
sehupd.lib
wdm.lib
wmilib.lib
wdmsec.lib

Bibliotecas do Verificador de Driver Estático e do Microsoft Class Framework

Se você estiver trabalhando com drivers WDM que devem vincular a uma biblioteca de estruturas de classe na lista Bibliotecas de estrutura de classe, o driver falhará na condição verificador de driver estático. No entanto, há algumas regras genéricas que ainda podem ser usadas, como a regra NullCheck , para executar algum nível de verificação estática.