Condividi tramite


Regola SpinLockSafe (wdm)

La regola SpinLockSafe specifica che IoStartNextPacket e IoCompleteRequest non vengono chiamati durante la conservazione di un blocco di spin.

Questa regola specifica anche che il driver chiama KeAcquireSpinLock o KeAcquireSpinLockAtDpcLevel prima di chiamare KeReleaseSpinLockFromDpcLevel o KeReleaseSpinLock e che chiama IoAcquireCancelSpinLock prima di chiamare IoReleaseCancelSpinLock.

Il verificatore driver statico può segnalare violazioni false di questa regola se il driver include SpinLock annidati, anche se tali blocchi di spin vengono acquisiti e rilasciati correttamente.

Modello di driver: WDM

Come eseguire il test

In fase di compilazione

Eseguire il verifica driver statico e specificare la regola SpinLockSafe .

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.

Si applica a

IoAcquireCancelSpinLockIoCompleteRequestIoReleaseCancelSpinLockIoStartNextPacketKeAcquireSpinLockKeAcquireSpinLockRaiseToDpcKeReleaseSpinLock