Compartir a través de


Determinar si el comprobador de controladores estáticos admite el controlador o la biblioteca

El comprobador de controladores estáticos (SDV) es totalmente compatible con los controladores y bibliotecas WDM, KMDF, NDIS y Storport, y tiene compatibilidad limitada con otros controladores. Para determinar si el controlador o la biblioteca se admiten y se configuran correctamente, lea los requisitos descritos en esta sección.

Requisitos de controlador o biblioteca

Puede ejecutar el conjunto completo de reglas en la herramienta de análisis de SDV si su controlador o biblioteca cumple una de las siguientes condiciones y no se vincula a ninguna de las bibliotecas de marcos de clases que se enumeran a continuación.

  • Tiene un controlador o biblioteca WDM.
  • Tiene un controlador o biblioteca que se vincula a WdfLdr.lib o WdfDriverEntry.lib.
  • Tiene un controlador o biblioteca que se vincula a NDIS.lib.
  • Tiene un controlador o biblioteca que se vincula a Storport.lib.

Si tiene un controlador que se encuentra fuera de las condiciones anteriores, SDV considerará el controlador "genérico" y ejecutará un conjunto limitado de comprobaciones.

Además, tenga en cuenta que las bibliotecas comprobadas por SDV deben ser bibliotecas de controladores en modo kernel, no bibliotecas generales de C o C++.

Static Driver Verifier admite un controlador o biblioteca que pasa esas condiciones incluso si el controlador o la biblioteca se vinculan a varias bibliotecas de utilidades.

Además, para realizar el análisis, SDV requiere que:

  • El controlador ha declarado al menos un punto de entrada mediante declaraciones de tipo de rol de función.
  • El controlador compila y vincula correctamente (en Visual Studio mediante MSBuild).
  • Si el controlador o la biblioteca usa KMDF, el controlador o la biblioteca usa KDMF versión 1.7 o posterior.
  • Si el controlador o la biblioteca usa NDIS, usa la versión 6.0, 6.1, 6.20, 6.30 o 6.40. Tenga en cuenta que esta lista está sujeta a cambios.
  • El controlador no combina modelos de controlador (por ejemplo, KMDF con WDM o KMDF y NDIS).

Hay otros factores que afectan a la calidad y la precisión de los resultados del análisis estático. Entre estos factores se incluyen:

  • Uso de bibliotecas de utilidades que SDV no ha procesado.
  • Tamaño del controlador, especialmente si tiene más de 100 000 líneas de código.
  • Uso de características específicas del lenguaje, como funciones virtuales y aritmética de puntero.

Requisitos del proyecto de Visual Studio

Para usar el comprobador de controladores estáticos, el proyecto de Visual Studio debe tener la siguiente configuración:

  • UseDebugLibraries = false
  • Plataforma = Win32 (x86) o x64

Bibliotecas de marcos de clases

Si tiene un controlador o biblioteca WDM y desea ejecutar SDV, el controlador o la biblioteca no deben vincularse a una de las siguientes bibliotecas de marcos de clases.

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 utilidades

Static Driver Verifier admite un controlador o biblioteca que tiene vínculos a varias bibliotecas de utilidades si el controlador o la biblioteca se ajusta a los requisitos de controlador o biblioteca.

Nombre de archivo
BufferOverflowK.lib
hal.lib
ntoskrnl.lib
ntstrsafe.lib
rtlver.lib
sehupd.lib
wdm.lib
wmilib.lib
wdmsec.lib

Comprobador de controladores estáticos y bibliotecas de Microsoft Class Framework

Si está trabajando con controladores WDM que deben vincularse a una biblioteca de marcos de clases en la lista Bibliotecas de marcos de clases, el controlador producirá un error en la condición Comprobador de controladores estáticos. Sin embargo, hay algunas reglas genéricas que todavía se pueden usar como la regla NullCheck para realizar algún nivel de comprobación estática.