Condividi tramite


Set di regole IrpPending (WDM)

Usare queste regole per verificare che il driver scriva correttamente i pacchetti di richiesta di I/O.

Contenuto della sezione

Argomento Descrizione

MarkDevicePower

La regola MarkDevicePower specifica che viene inserita una IRP_MJ_POWER con IRP_MN_SET_POWER per SystemPowerState IRP che passa a S0.

MarkingInterlockedQueuedIrps

La regola MarkInterlockedQueuedIrps specifica che il driver contrassegna correttamente l'IRP come in sospeso prima di accodarlo in modo interlocked per un'ulteriore elaborazione.

MarkingQueuedIrps

La regola MarkingQueuedIrps specifica che il driver chiama IoMarkIrpPending per un IRP che richiede un'ulteriore elaborazione solo tenendo premuto un blocco di selezione. Questa regola si applica solo quando il driver aggiunge l'IRP a una coda gestita da driver.

MarkIrpPending

La regola MarkIrpPending specifica che ogni volta che una routine dispatch del driver chiama IoMarkIrpPending, il driver restituisce STATUS_PENDING al termine della routine dispatch. Per una specifica gratuita, vedere MarkIrpPending2 .

MarkIrpPending2

La regola MarkIrpPending2 specifica che se una routine dispatch restituisce STATUS_PENDING, ha chiamato IoMarkIrpPending o passato l'IRP al driver inferiore. Per una specifica gratuita, vedere MarkIrpPending .

MarkPower

La regola MarkPower specifica che viene inserita una IRP_MJ_POWER con IRP_MN_SET_POWER per SystemPowerState IRP che passa a S0. Questa regola si applica solo ai driver FDO e FIDO.

MarkPowerDown

La regola MarkPowerDown specifica che un IRP_MJ_POWER con IRP_MN_SET_POWER per SystemPowerState IRP passando da s0 a [S1... S5] è pended.

MarkQueryRelations

La regola MarkQueryRelations specifica che il driver deve eseguire la penna del IRP_MN_QUERY_DEVICE_RELATIONS IRP.

MarkStartDevice

La regola MarkStartDevice specifica che il driver esegue correttamente l'input penna di un IRP_MN_START_DEVICE IRP. Questa regola si applica solo ai driver FDO e FIDO.

PendedCompletedRequest

La regola PendedCompletedRequest specifica che la routine di invio di un driver non restituisce STATUS_PENDING su un IRP se il driver ha chiamato IoCompleteRequest sul provider di servizi IRP in ingresso.

PendedCompletedRequest2

La regola PendedCompletedRequest2 specifica che è necessaria un'attesa dopo una chiamata a IoCallDriver o PoCallDriver perché la routine dispatch potrebbe completare un IRP in sospeso.

PendedCompletedRequest3

La regola PendedCompletedRequest3 specifica che un IRP in sospeso non deve essere completato con una chiamata a IoCompleteRequest.

PendedCompletedRequestEx

La regola PendedCompletedRequestEx specifica che il driver non deve chiamare IoCompleteRequest per un IRP in sospeso.

StartDeviceWait

La regola StartDeviceWait specifica che il driver non deve chiamare KeWaitForSingleObject nel contesto dell'IRP del dispositivo di avvio.

StartDeviceWait2

La regola StartDeviceWait2 specifica che il driver non deve chiamare KeWaitForSingleObject nel contesto dell'IRP del dispositivo di avvio.

StartDeviceWait3

La regola StartDeviceWait3 specifica che il driver non deve chiamare KeWaitForSingleObject nel contesto dell'IRP del dispositivo di avvio.

StartDeviceWait4

La regola StartDeviceWait4 specifica che il driver non deve chiamare KeWaitForSingleObject nel contesto dell'IRP del dispositivo di avvio.

Per selezionare il set di regole IrpPending

  1. Selezionare il progetto driver (con estensione vcxProj) in Microsoft Visual Studio. Dal menu Driver fare clic su Launch Static Driver Verifier....From the Driver menu, click Launch Static Driver Verifier....

  2. Fare clic sulla scheda Regole . In Set di regole selezionare IrpPending (In sospeso).

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

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

    Per altre informazioni, vedere Using Static Driver Verifier to Find Defects in Drivers and Static Driver Verifier commands (MSBuild).