Conjunto de reglas de VirtualStorport (Storport)
Use estas reglas para comprobar que el controlador llama correctamente a los controladores de DDIs que son de especial interés para los controladores de miniport virtual de Storport (VMiniport).
En esta sección
Tema | Descripción |
---|---|
Esta regla comprueba que el controlador no intenta liberar el mismo bloque de memoria del grupo dos veces. |
|
Esta regla comprueba que no se llama a KeSetEvent dos veces en el mismo objeto de evento. Si se pasa el mismo objeto de evento a la rutina, el controlador produce un error en la regla. |
|
Esta regla comprueba que IoFreeIrp libere un IRP asignado por IoAllocateIrp o que su rutina de finalización se establecerá mediante IoSetCompletionRoutine. |
|
Esta regla comprueba que, al salir de la rutina HwStorFindAdapter , el campo VirtualDevice de la estructura PORT_CONFIGURATION_INFORMATION (Storport) se ha establecido en FALSE. La regla solo se aplica a los miniportes físicos de StorPort. |
|
Esta regla comprueba que, al salir de la rutina HwStorFindAdapter , el campo VirtualDevice de la estructura PORT_CONFIGURATION_INFORMATION (Storport) se ha establecido en TRUE. La regla solo se aplica a minipuertos de StorPort virtual. |
|
Esta regla comprueba que las llamadas del controlador a determinadas funciones de sincronización solo se realizan mientras se deshabilita la entrega normal de APC del kernel. |
|
Esta regla comprueba que el identificador de una clave del Registro creada con ZwCreateKey se usa posteriormente mediante otras rutinas ZwXxx . No se debe llamar a la rutina ZwOpenKey en un identificador ya abierto. Las rutinas ZwEnumerateKey, ZwEnumerateValueKey, ZwFlushKey, ZwQueryKey, ZwQueryValueKey, ZwSetValueKey, ZwClose y ZwDeleteKey no deben llamarse en un identificador que no esté abierto. El controlador también debe cerrarse antes de devolverlo. |
|
Esta regla comprueba que el identificador de la clave del Registro abierta a través de ZwOpenKey se usa posteriormente correctamente con otras rutinas ZwXxx. Las rutinas ZwEnumerateKey, ZwEnumerateValueKey, ZwFlushKey, ZwQueryKey, ZwQueryValueKey, ZwSetValueKey, ZwClose y ZwDeleteKey no deben llamarse en un identificador que no esté abierto. El controlador también debe cerrarse antes de devolverlo. |
Para seleccionar el conjunto de reglas VirtualStorport
Seleccione el proyecto de controlador (.vcxProj) en Microsoft Visual Studio. En el menú Controlador , haga clic en Iniciar comprobador de controladores estáticos....
Haga clic en la pestaña Reglas . En Conjuntos de reglas, seleccione VirtualStorport.
Para seleccionar el conjunto de reglas predeterminado en una ventana del símbolo del sistema para desarrolladores de Visual Studio, especifique VirtualStorport.sdv con la opción /check . Por ejemplo:
msbuild /t:sdv /p:Inputs="/check:VirtualStorport.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
Para obtener más información, consulte Uso del comprobador de controladores estáticos para buscar defectos en controladores y comandos de comprobador de controladores estáticos (MSBuild).