Set di regole di blocco (KMDF)
Usare queste regole per verificare che il driver gestisca correttamente le risorse condivise.
Contenuto della sezione
Argomento | Descrizione |
---|---|
La regola ParentObjectCheckLock specifica che il driver deve chiamare WdfWaitLockCreate e WdfSpinLockCreate impostando un oggetto padre. |
|
La regola ReqSendWhileSpinlock specifica che non vengono inviate richieste mentre il driver contiene uno spinlock. |
|
La regola Spinlock specifica che le chiamate a KeAcquireSpinLock o KeAcquireSpinLockRaiseToDpc e KeReleaseSpinlock vengono usate nell'alternanza rigorosa. |
|
La regola SpinlockDpc specifica che le chiamate a KeAcquireSpinLock o KeAcquireSpinLockRaiseToDpc e KeReleaseSpinlock vengono usate nell'alternanza rigorosa. |
|
La regola SpinlockRelease specifica che le chiamate a KeAcquireSpinLock, KeAcquireSpinLockRaiseToDpc e KeReleaseSpinLock vengono usate in modo bilanciato all'interno di un callback kmDF. Alla fine di qualsiasi routine di callback kmDF, il driver non deve contenere il blocco di rotazione. |
|
La regola WdfInterruptLock specifica che le chiamate al metodo WdfInterruptAcquireLock vengono usate in stretta alternanza con chiamate a WdfInterruptReleaseLock. Inoltre, alla fine di qualsiasi routine di callback kmDF, il driver non deve contenere l'oggetto di blocco dello spin framework, ottenuto da una chiamata precedente a WdfInterruptAcquireLock. |
|
La regola WdfInterruptLockRelease specifica che le chiamate a WdfInterruptAcquireLock e WdfInterruptReleaseLock vengono usate in modo bilanciato all'interno di una routine di callback kmDF. Alla fine di qualsiasi routine di callback kmDF, il driver non deve contenere l'oggetto di blocco dello spin framework ottenuto da una chiamata precedente a WdfInterruptAcquireLock. |
|
La regola WdfSpinlock specifica che le chiamate al metodo WdfSpinLockAcquire vengono usate nell'alternanza rigorosa con WdfSpinlockRelease. Alla fine di qualsiasi routine di callback kmDF, il driver non deve contenere l'oggetto spinlock del framework ottenuto da una chiamata precedente a WdfSpinLockAcquire. |
|
La regola WdfSpinlockRelease specifica che le chiamate a WdfSpinLockAcquire e WdfSpinlockRelease vengono usate in modo bilanciato all'interno di una funzione di callback eventi KMDF. Quando la funzione di callback dell'evento KMDF restituisce, il driver non deve contenere l'oggetto di blocco dello spin framework ottenuto da una chiamata precedente a WdfSpinLockAcquire. |
|
La regola WdfWaitlock specifica che le chiamate a WdfWaitLockAcquire vengono usate nell'alternanza rigorosa con WdfWaitlockRelease. Quando la funzione di callback dell'evento KMDF restituisce, il driver non deve contenere l'oggetto di blocco dello spin framework ottenuto da una chiamata precedente a WdfWaitLockAcquire. |
|
La regola WdfWaitlockRelease specifica che le chiamate a WdfWaitLockAcquire e WdfWaitLockRelease vengono usate in modo bilanciato all'interno di una funzione di callback dell'evento KMDF. Quando la funzione di callback dell'evento KMDF restituisce, il driver non deve contenere l'oggetto di blocco dello spin framework ottenuto da una chiamata precedente a WdfWaitLockAcquire. |
Per selezionare il set di regole di blocco
Selezionare il progetto driver (con estensione vcxProj) in Microsoft Visual Studio. Dal menu Driver fare clic su Avvia verifica driver statico....
Fare clic sulla scheda Regole . In Set di regole selezionare Blocca.
Per selezionare il set di regole predefinite da una finestra del prompt dei comandi per sviluppatori di Visual Studio, specificare Locking.sdv con l'opzione /check . Ad esempio:
msbuild /t:sdv /p:Inputs="/check:Locking.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).