Condividi tramite


IOCTL_STORAGE_CHECK_VERIFY IOCTL (ntddstor.h)

Determina se il supporto è stato modificato in un dispositivo multimediale rimovibile aperto dal chiamante per l'accesso in lettura o scrittura. Se l'accesso in lettura o scrittura al dispositivo non è necessario, il chiamante può migliorare le prestazioni aprendo il dispositivo con FILE_READ_ATTRIBUTES e inviando invece una richiesta diIOCTL_STORAGE_CHECK_VERIFY2.

Per altre informazioni, vedere Supporto di supporti rimovibili.

Codice principale

IRP_MJ_DEVICE_CONTROL

Buffer di input

Nessuno.

Lunghezza del buffer di input

Nessuno.

Buffer di output

Facoltativamente, per i dispositivi disco e CD-ROM, Irp->AssociatedIrp.SystemBuffer punta a un buffer per ricevere il conteggio delle modifiche dei supporti. Il driver riempie questo buffer solo se Parameters.DeviceIoControl.OutputBufferLength era diverso da zero e il valore restituito è STATUS_SUCCESS. Il numero di modifiche al supporto è un ULONG che indica quante volte il supporto è cambiato dall'avvio del driver.

In caso contrario, questa richiesta non ha alcun output.

Lunghezza del buffer di output

Facoltativamente, per i dispositivi disco e CD-ROM, Parameters.DeviceIoControl.OutputBufferLength nella posizione dello stack I/O dell'IRP indica le dimensioni, in byte, di un buffer, che deve essere >= sizeof(ULONG). Questo campo è zero se il buffer facoltativo non è specificato.

In caso contrario, questa richiesta non ha input.

Blocco di stato

Se un disco o un driver CD-ROM non indica che il supporto è stato modificato, il driver imposta il campo stato su STATUS_SUCCESS. Inoltre, se è stato specificato il buffer di modifica dei supporti facoltativo, il driver restituisce il numero di modifiche dei supporti nel buffer in corrispondenza di Irp->AssociatedIrp.SystemBuffer e imposta il campo informazioni su sizeof(ULONG). Se il buffer di modifica del supporto facoltativo non è stato specificato, il driver imposta Information su zero.

Se il driver rileva che il supporto è stato modificato e il volume viene montato (VPB_MOUNTED è impostato nel VPB), deve:

  1. Impostare Informazioni su zero.
  2. Impostare Stato su STATUS_VERIFY_REQUIRED.
  3. Impostare il flag DO_VERIFY_VOLUME nel DeviceObject.
  4. Chiamare IoCompleteRequest con l'IRP di input.
Se il driver rileva che il supporto è stato modificato, ma il volume non è montato, il driver non deve impostare il bit di DO_VERIFY_VOLUME. Al contrario, deve eseguire le operazioni seguenti:
  1. Impostare Stato su STATUS_IO_DEVICE_ERROR.
  2. Impostare Informazioni su zero.
  3. Chiamare IoCompleteRequest con IRP.
Se il driver rileva un errore, ad esempio STATUS_BUFFER_TOO_SMALL, STATUS_INSUFFICIENT_RESOURCES o un errore del dispositivo, imposta Informazioni su zero e imposta il valore di errore appropriato nel campo Stato.

Per un driver nastro, il campo informazioni è impostato su zero e il campo stato è impostato su STATUS_SUCCESS o eventualmente su STATUS_VERIFY_REQUIRED.

Fabbisogno

Requisito Valore
intestazione ntddstor.h (include Ntddstor.h)

Vedere anche

IOCTL_STORAGE_CHECK_VERIFY2