Condividi tramite


Set di regole VirtualStorport (Storport)

Usare queste regole per verificare che il driver chiami correttamente le DDI che sono di particolare interesse per i driver miniport virtuali Storport (VMiniport).

Contenuto della sezione

Argomento Descrizione

DoubleExFreePool

Questa regola verifica che il driver non tenti di liberare due volte lo stesso blocco di memoria del pool.

DoubleKeSetEvent

Questa regola verifica che KeSetEvent non venga chiamato due volte nello stesso oggetto evento. Se lo stesso oggetto evento viene passato alla routine, il driver non riesce la regola.

IoFreeIrp

Questa regola verifica che un'IRP allocata da IoAllocateIrp verrà liberata da IoFreeIrp o dalla routine di completamento verrà impostata da IoSetCompletionRoutine.

StorPortVirtualDevice

Questa regola verifica che all'uscita dalla routine HwStorFindAdapter , il campo VirtualDevice nella struttura PORT_CONFIGURATION_INFORMATION (Storport) sia stato impostato su FALSE. La regola si applica solo ai miniport StorPort fisici.

StorPortVirtualDevice2

Questa regola verifica che all'uscita dalla routine HwStorFindAdapter , il campo VirtualDevice nella struttura PORT_CONFIGURATION_INFORMATION (Storport) sia stato impostato su TRUE. La regola si applica solo ai miniport StorPort virtuali.

WithinCriticalRegion

Questa regola verifica che le chiamate del driver a determinate funzioni di sincronizzazione vengano eseguite solo mentre il recapito APC del kernel normale è disabilitato.

ZwRegistryCreate

Questa regola verifica che l'handle a una chiave del Registro di sistema creata con ZwCreateKey venga successivamente usata correttamente da altre routine ZwXxx . La routine ZwOpenKey non deve essere chiamata su un handle già aperto. Le routine ZwEnumerateKey, ZwEnumerateValueKey, ZwFlushKey, ZwQueryKey, ZwQueryValueKey, ZwSetValueKey, ZwClose e ZwDeleteKey non devono essere chiamate su un handle che non è aperto. L'handle deve essere chiuso anche prima di restituire.

ZwRegistryOpen

Questa regola verifica che l'handle della chiave del Registro di sistema aperto tramite ZwOpenKey venga successivamente usato correttamente da altre routine ZwXxx. Le routine ZwEnumerateKey, ZwEnumerateValueKey, ZwFlushKey, ZwQueryKey, ZwQueryValueKey, ZwSetValueKey, ZwClose e ZwDeleteKey non devono essere chiamate su un handle che non è aperto. L'handle deve essere chiuso anche prima di restituire.

Per selezionare il set di regole VirtualStorport

  1. Selezionare il progetto driver (con estensione vcxProj) in Microsoft Visual Studio. Dal menu Driver fare clic su Avvia verifica driver statico....

  2. Fare clic sulla scheda Regole . In Set di regole selezionare VirtualStorport.

    Per selezionare il set di regole predefinito da una finestra del prompt dei comandi per sviluppatori di Visual Studio, specificare VirtualStorport.sdv con l'opzione /check . Ad esempio:

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

    Per altre informazioni, vedere Uso del verificatore driver statico per trovare i difetti nei comandi driver e verifica driver statici (MSBuild).