Compartilhar via


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çãoIOCTL_STORAGE_CHECK_VERIFY2.

Para obter mais informações, consulte suporte aode 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, >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 começou.

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

Comprimento do buffer de saída

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

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

Bloco de status

Se um driver de disco ou 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 > AssociatedIrp.SystemBuffer e definirá o campo de Informações como tamanhos de(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 estiver definido na VPB), ele deverá:

  1. Defina de informações de 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 de informações de 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á de Informações como zero e definirá o valor de erro apropriado no campo status do.

Para um driver de fita, o campo informações de é definido como zero e o campo status de está definido como STATUS_SUCCESS ou possivelmente para STATUS_VERIFY_REQUIRED.

Requisitos

Requisito Valor
cabeçalho ntddstor.h (include Ntddstor.h)

Consulte também

IOCTL_STORAGE_CHECK_VERIFY2