IOCTL_STORAGE_CHECK_VERIFY IOCTL (ntddstor.h)

Determina se a mídia foi alterada em um dispositivo de mídia removível que o chamador abriu para acesso de leitura ou gravação. Se o acesso de leitura ou gravação ao dispositivo não for necessário, o chamador poderá melhorar o desempenho abrindo o dispositivo com FILE_READ_ATTRIBUTES e emitindo uma solicitaçãode IOCTL_STORAGE_CHECK_VERIFY2 .

Para obter mais informações, consulte Suporte à mídia removível.

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de entrada

Nenhum.

Comprimento do buffer de entrada

Nenhum.

Buffer de saída

Opcionalmente, para dispositivos de disco e CD-ROM, Irp-AssociatedIrp.SystemBuffer> aponta para um buffer para receber a contagem de alterações de mídia. O driver preencherá esse buffer somente se Parameters.DeviceIoControl.OutputBufferLength não for zero e o valor retornado for STATUS_SUCCESS. A contagem de alterações de mídia é um ULONG que indica quantas vezes a mídia mudou desde que o driver foi iniciado.

Caso contrário, essa solicitação não tem saída.

Comprimento do buffer de saída

Opcionalmente, para dispositivos cd-ROM e disco, Parameters.DeviceIoControl.OutputBufferLength no local da pilha de E/S do IRP indica o tamanho, em bytes, de um buffer, que deve ser >= sizeof(ULONG). Esse campo será zero se o buffer opcional não for especificado.

Caso contrário, essa solicitação não tem nenhuma entrada.

Bloco de status

Se um disco ou driver CD-ROM não tiver nenhuma indicação de que a mídia foi alterada, o driver definirá o campo Status como STATUS_SUCCESS. Além disso, se o buffer de alteração de mídia opcional tiver sido especificado, o driver retornará a contagem de alterações de mídia no buffer em Irp-AssociatedIrp.SystemBuffer> e definirá o campo Informações como sizeof(ULONG). Se o buffer de alteração de mídia opcional não tiver sido especificado, o driver definirá Informações como zero.

Se o driver detectar que a mídia foi alterada e o volume estiver montado (VPB_MOUNTED está definido no VPB), ele deverá:

  1. Defina Informações como zero.
  2. Defina Status como STATUS_VERIFY_REQUIRED.
  3. Defina o sinalizador DO_VERIFY_VOLUME no DeviceObject.
  4. Chame IoCompleteRequest com o IRP de entrada.
Se o driver detectar que a mídia foi alterada, mas o volume não está montado, o driver não deve definir o bit DO_VERIFY_VOLUME. Em vez disso, ele deve fazer o seguinte:
  1. Defina Status como STATUS_IO_DEVICE_ERROR.
  2. Defina Informações como zero.
  3. Chame IoCompleteRequest com o IRP.
Se o driver detectar um erro como STATUS_BUFFER_TOO_SMALL, STATUS_INSUFFICIENT_RESOURCES ou um erro de dispositivo, ele definirá Informações como zero e definirá o valor de erro apropriado no campo Status .

Para um driver de fita, o campo Informações é definido como zero e o campo Status é definido como STATUS_SUCCESS ou possivelmente para STATUS_VERIFY_REQUIRED.

Requisitos

Requisito Valor
Cabeçalho ntddstor.h (inclua Ntddstor.h)

Confira também

IOCTL_STORAGE_CHECK_VERIFY2