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
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á:
- Defina Informações como zero.
- Defina Status como STATUS_VERIFY_REQUIRED.
- Defina o sinalizador DO_VERIFY_VOLUME no DeviceObject.
- Chame IoCompleteRequest com o IRP de entrada.
- Defina Status como STATUS_IO_DEVICE_ERROR.
- Defina Informações como zero.
- Chame IoCompleteRequest com o IRP.
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) |