IOCTL_STORAGE_EJECTION_CONTROL IOCTL (ntddstor.h)
Bloqueia o dispositivo para impedir a remoção da mídia. Se o driver puder impedir que a mídia seja removida enquanto a unidade está em uso, o driver desabilita ou habilita o mecanismo que ejeta a mídia, bloqueando assim a unidade. Um chamador deve abrir o dispositivo com FILE_READ_ATTRIBUTES para enviar essa solicitação.
Ao contrário de IOCTL_STORAGE_MEDIA_REMOVAL, o driver rastreia IOCTL_STORAGE_EJECTION_CONTROL solicitações pelo chamador e ignora solicitações de desbloqueio para as quais não recebeu uma solicitação de bloqueio do mesmo chamador, impedindo assim que outros chamadores desbloqueiem a unidade.
Um driver para um dispositivo de mídia removível – pode dar suporte a este IOCTL deve fazer o seguinte:
- Mantenha uma contagem de bloqueios, marcada pelo chamador, na extensão de objeto do dispositivo.
- Mantenha a contagem de bloqueios por dispositivo físico.
- Quando chamado com esse IOCTL, se o sinalizador para impedir a remoção da mídia estiver definido, incremente a contagem; se o sinalizador estiver limpo e o driver tiver recebido anteriormente uma solicitação de bloqueio do mesmo chamador, decremente a contagem.
- Impedir a remoção da mídia, a menos que todas as contagens de bloqueio sejam zero.
Para garantir que os bloqueios de remoção de mídia sejam liberados corretamente, o driver de classe controla os chamadores que bloqueiam a mídia com IOCTL_STORAGE_EJECTION_CONTROL. Se o chamador terminar sem desbloquear o dispositivo, o driver de classe desbloqueará o dispositivo.
Código principal
Buffer de entrada
O buffer em Irp-AssociatedIrp.SystemBuffer> contém um valor booliano, com TRUE indicando que o driver deve bloquear a mídia na unidade.
Comprimento do buffer de entrada
O comprimento de um booliano.
Buffer de saída
Nenhum.
Comprimento do buffer de saída
Nenhum.
Bloco de status
O campo Informações é definido como zero. O campo Status é definido como STATUS_SUCCESS ou possivelmente para STATUS_INVALID_DEVICE_REQUEST, STATUS_NO_MEDIA_IN_DEVICE ou STATUS_DEVICE_NOT_CONNECTED.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ntddstor.h (inclua Ntddstor.h) |