Compartir a través de


Conjunto de reglas de SrbProcessing (Storport)

Use estas reglas para comprobar que el controlador procesa correctamente las solicitudes SRB.

En esta sección

Tema Descripción

SpDuplex

Esta regla comprueba que este miniporte está en modo Dúplex completo. Cualquier controlador creado de acuerdo con el modelo storport-miniport debe estar en modo dúplex completo. La mitad de dúplex solo debe usarse al migrar un controlador SCSI existente a StorPort.

SpNoWait

Esta regla comprueba que las esperas o la asignación de datos no se realizan dentro de StartIo.

SpReturnValue

Esta regla comprueba que las implementaciones del controlador de HwStorFindAdapter y VirtualHwStorFindAdapter devuelven un estado válido. Un estado válido es uno de los siguientes: SP_RETURN_FOUND, SP_RETURN_ERROR, SP_RETURN_BAD_CONFIG o SP_RETURN_NOT_FOUND.

StorPortAllocatePool

Esta regla comprueba que el miniport no debe intentar llamar a StorPortFreePool en un búfer desasignado.

StorPortAllocatePool2

Esta regla comprueba que el miniporte no debe intentar llamar a StorPortAllocatePool en un búfer asignado sin desasignarlo primero.

StorPortBuildIo

Esta regla comprueba que si la rutina StorPort Miniport StorPortBuildIo devuelve FALSE, la SRB en cuestión no se pasa a StartIo. (En tales casos, el controlador de miniport debe completar el SRB llamando a StorPortNotification con un tipo de notificación RequestComplete de StorPortBuildIo o algún otro lugar).

StorPortCompleteRequest

Esta regla comprueba que el miniporte no realiza ninguna llamada a StorPortCompleteRequest . No se recomienda el uso de StorPortCompleteRequest ; en su lugar, los miniports deben llamar a StorPortNotification con notificationType = RequestComplete.

StorPortEnablePassive

Esta regla comprueba que no se llama a StorPortEnablePassiveInitialization desde ninguna rutina de controlador de miniport de StorPort que no sea HwInitialize.

StorPortFindAdapter

La rutina HwStorFindAdapter debe establecer los campos MaximumTransferLength y NumberOfPhysicalBreaks en la estructura PORT_CONFIGURATION_INFORMATION. De forma predeterminada, el valor de ambos campos es SP_UNINITIALIZED_VALUE. Si alguno de estos campos sigue estando establecido en SP_UNINITIALIZED_VALUE tras salir de FindAdapter, el controlador produce un error en la regla.

StorPortNotification2

Esta regla comprueba que las llamadas a StorPortNotification solo usan tipos de notificación permitidos (es decir, documentados).

StorPortPassiveFromHwInit

No se debe llamar a StorPortEnablePassiveInitialization dentro del punto de entrada de inicialización de HW para los controladores storport si se puede llamar al punto de entrada de inicialización de HW directamente desde el punto de entrada de control del adaptador de HW.

StorPortPerfOpts

Esta regla comprueba que el parámetro PerfConfigData que se pasa a StorPortInitializePerfOpts no es NULL.

StorPortStartIo

Las esperas o la asignación de datos nunca se deben realizar en la rutina StartIo de miniport. El controlador produce un error en la regla si llama a StorPortStallExecution u otra función que implica operaciones que requieren mucho tiempo. Dado que StartIo está sincronizado, estas llamadas se deben realizar principalmente en BuildIo.

StorPortTimer

La rutina HW_TIMER debe definirse si se realiza una llamada a StorPortNotification(RequestTimerCall).

Para seleccionar el conjunto de reglas SrbProcessing

  1. Seleccione el proyecto de controlador (.vcxProj) en Microsoft Visual Studio. En el menú Controlador , haga clic en Iniciar comprobador de controladores estáticos....

  2. Haga clic en la pestaña Reglas . En Conjuntos de reglas, seleccione SrbProcessing.

    Para seleccionar el conjunto de reglas predeterminado en una ventana del símbolo del sistema para desarrolladores de Visual Studio, especifique SrbProcessing.sdv con la opción /check . Por ejemplo:

    msbuild /t:sdv /p:Inputs="/check:SrbProcessing.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).