Condividi tramite


Regola SpinLock (wdm)

La regola SpinLock specifica che, dopo aver chiamato KeAcquireSpinLock, il driver chiama KeReleaseSpinLock prima delle chiamate successive a KeAcquireSpinLock o a KeAcquireSpinLockRaiseToDpc.

Le chiamate annidate sono consentite se acquisiscono e rilasciano blocchi per risorse diverse. Le chiamate annidate per acquisire o rilasciare blocchi per le stesse risorse violano questa regola.

Questa regola specifica anche che il driver ha usato KeReleaseSpinLock per rilasciare tutti i blocchi di spin prima della routine di invio o annullare la routine.

Modello di driver: WDM

Verifica bug trovata con questa regola: Verifica bug 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION (0x00040009 )

Come eseguire il test

In fase di compilazione

Eseguire il verifica driver statico e specificare la regola SpinLock .

Usa i passaggi descritti di seguito per eseguire un'analisi del codice:
  1. Prepara il codice (usa dichiarazioni di tipo ruolo).
  2. Esegui Driver Verifier statico.
  3. Visualizza e analizza i risultati.

Per altre informazioni, vedere Uso del verificatore driver statico per trovare i difetti nei driver.

In fase di esecuzione

Eseguire il verifica driver e selezionare l'opzione di controllo della conformità DDI .

Si applica a

KeAcquireSpinLockKeAcquireSpinLockRaiseToDpcKeReleaseSpinLockKeTryToAcquireSpinLockAtDpcLevel