Condividi tramite


IOCTL_STORAGE_CHECK_VERIFY IOCTL (ntddstor.h)

Determina se il supporto è cambiato 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 rilasciando invece una richiestadi IOCTL_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 multimediali. Il driver riempie questo buffer solo se Parameters.DeviceIoControl.OutputBufferLength era diverso da zero e il valore restituito è STATUS_SUCCESS. Il conteggio delle modifiche multimediali è un ULONG che indica il numero di volte in cui il supporto è cambiato dopo l'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 dello stato

Se un driver disco o CD-ROM non indica che il supporto è cambiato, il driver imposta il campo Stato su STATUS_SUCCESS. Inoltre, se è stato specificato il buffer di modifica multimediale facoltativo, il driver restituisce il conteggio delle modifiche multimediali nel buffer in Irp-AssociatedIrp.SystemBuffer> e imposta il campo Informazioni su sizeof(ULONG). Se il buffer di modifica multimediale facoltativo non è stato specificato, il driver imposta Informazioni su zero.

Se il driver rileva che il supporto è cambiato 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 di DO_VERIFY_VOLUME in DeviceObject.
  4. Chiamare IoCompleteRequest con l'IRP di input.
Se il driver rileva che il supporto è cambiato, ma il volume non è montato, il driver non deve impostare il bit di DO_VERIFY_VOLUME. Invece, dovrebbe eseguire le operazioni seguenti:
  1. Impostare Stato su STATUS_IO_DEVICE_ERROR.
  2. Impostare Informazioni su zero.
  3. Chiamare IoCompleteRequest con L'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.

Requisiti

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

Vedi anche

IOCTL_STORAGE_CHECK_VERIFY2