Partager via


Jeu de règles SrbProcessing (Storport)

Utilisez ces règles pour vérifier que votre pilote traite correctement les requêtes SRB.

Contenu de cette section

Sujet Description

SpDuplex

Cette règle vérifie que ce miniport est en mode Duplex complet. Tout pilote créé en fonction du modèle StorPort-miniport doit être en mode Duplex complet . La moitié duplex doit être utilisée uniquement lors du portage d’un pilote SCSI existant vers StorPort.

SpNoWait

Cette règle vérifie que les attentes ou l’allocation de données ne sont pas effectuées dans StartIo.

SpReturnValue

Cette règle vérifie que les implémentations du pilote de HwStorFindAdapter et VirtualHwStorFindAdapter retournent un état valide. Un état valide est l’un des éléments suivants : SP_RETURN_FOUND, SP_RETURN_ERROR, SP_RETURN_BAD_CONFIG ou SP_RETURN_NOT_FOUND.

StorPortAllocatePool

Cette règle vérifie que le miniport ne doit pas tenter d’appeler StorPortFreePool sur une mémoire tampon libérée.

StorPortAllocatePool2

Cette règle vérifie que le miniport ne doit pas tenter d’appeler StorPortAllocatePool sur une mémoire tampon allouée sans l’allouer en premier.

StorPortBuildIo

Cette règle vérifie que si la routine StorPort miniport StorPortBuildIo retourne FALSE, la SRB en question n’est pas passée à StartIo. (Dans ce cas, le pilote miniport doit terminer le SRB en appelant StorPortNotification avec un type de notification RequestComplete de StorPortBuildIo ou un autre emplacement).

StorPortCompleteRequest

Cette règle vérifie qu’aucun appel à StorPortCompleteRequest n’est effectué par le miniport. L’utilisation de StorPortCompleteRequest n’est pas recommandée ; les miniports doivent à la place appeler StorPortNotification avec notificationType = RequestComplete.

StorPortEnablePassive

Cette règle vérifie que StorPortEnablePassiveInitialization n’est pas appelé à partir d’une routine de pilote miniport StorPort autre que HwInitialize.

StorPortFindAdapter

La routine HwStorFindAdapter doit définir les champs MaximumTransferLength et NumberOfPhysicalBreaks dans la structure PORT_CONFIGURATION_INFORMATION. Par défaut, la valeur de ces deux champs est SP_UNINITIALIZED_VALUE. Si l’un de ces champs est toujours défini sur SP_UNINITIALIZED_VALUE à la sortie de FindAdapter, le pilote échoue à la règle.

StorPortNotification2

Cette règle vérifie que les appels à StorPortNotification utilisent uniquement les types de notification autorisés (c’est-à-dire documentés).

StorPortPassiveFromHwInit

StorPortEnablePassiveInitialization ne doit pas être appelé dans le point d’entrée D’initialisation HW pour les pilotes Storport si le point d’entrée d’initialisation HW peut être appelé directement à partir du point d’entrée du contrôle de l’adaptateur HW.

StorPortPerfOpts

Cette règle vérifie que le paramètre PerfConfigData passé à StorPortInitializePerfOpts n’est pas NULL.

StorPortStartIo

Les attentes ou l’allocation de données ne doivent jamais être effectuées dans la routine StartIo du miniport. Le pilote échoue la règle si elle appelle StorPortStallExecution ou une autre fonction qui implique des opérations fastidieuses. Étant donné que StartIo est synchronisé, ces appels doivent principalement être effectués dans BuildIo.

StorPortTimer

La routine HW_TIMER doit être définie si un appel à StorPortNotification(RequestTimerCall) est effectué.

Pour sélectionner l’ensemble de règles SrbProcessing

  1. Sélectionnez votre projet de pilote (.vcxProj) dans Microsoft Visual Studio. Dans le menu Pilote , cliquez sur Lancer le vérificateur de pilote statique....

  2. Cliquez sur l’onglet Règles . Sous Ensembles de règles, sélectionnez SrbProcessing.

    Pour sélectionner l’ensemble de règles par défaut à partir d’une fenêtre d’invite de commandes du développeur Visual Studio, spécifiez SrbProcessing.sdv avec l’option /case activée. Par exemple :

    msbuild /t:sdv /p:Inputs="/check:SrbProcessing.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
    

    Pour plus d’informations, consultez Utilisation du vérificateur de pilote statique pour rechercher des défauts dans les pilotes et les commandes MSBuild (Static Driver Verifier).