IOCTL_STORAGE_QUERY_PROPERTY IOCTL (ntddstor.h)
Um driver pode usar IOCTL_STORAGE_QUERY_PROPERTY para retornar propriedades de um dispositivo de armazenamento ou adaptador. A solicitação indica o tipo de informação a ser recuperada, como dados de consulta para um dispositivo ou recursos e limitações de um adaptador. IOCTL_STORAGE_QUERY_PROPERTY também pode ser usado para determinar se o driver de porta dá suporte a uma propriedade específica ou quais campos no descritor de propriedade podem ser modificados com uma solicitação de propriedade de alteração subsequente.
Código principal
Buffer de entrada
Parameters.DeviceIoControl.InputBufferLength indica o tamanho, em bytes, do buffer de parâmetro em Irp-AssociatedIrp.SystemBuffer>, que deve ser >= sizeof(STORAGE_PROPERTY_QUERY).
Irp->AssociatedIrp.SystemBuffer contém STORAGE_PROPERTY_QUERY dados que especificam se o dispositivo ou o adaptador deve ser consultado, o tipo de consulta a ser executado e quaisquer parâmetros adicionais necessários para a consulta, como o código de página para uma página de sensor de modo SCSI específica. As propriedades do dispositivo devem ser recuperadas somente de um dispositivo; tentar recuperar propriedades do dispositivo de um adaptador causará um erro.
Parameters.DeviceIoControl.OutputBufferLength indica o número de bytes que podem ser gravados em Irp-AssociatedIrp.SystemBuffer>. OutputBufferLength pode ser zero para determinar se uma propriedade existe sem recuperar seus dados.
Comprimento do buffer de entrada
Parameters.DeviceIoControl.InputBufferLength indica o tamanho, em bytes, do buffer de parâmetro em Irp-AssociatedIrp.SystemBuffer>, que deve ser >= sizeof(STORAGE_PROPERTY_QUERY).
Buffer de saída
O driver retorna dados de consulta para o buffer em Irp-AssociatedIrp.SystemBuffer>. Quantidades variadas de dados específicos do barramento podem ser acrescentadas à estrutura .
Comprimento do buffer de saída
Converta a estrutura retornada para um STORAGE_DESCRIPTOR_HEADER e marcar seu membro Size para determinar o número de bytes que a estrutura realmente requer.
Bloco de status
O campo Informações é definido como o número de bytes retornados. O campo Status é definido como STATUS_SUCCESS ou possivelmente como STATUS_INVALID_DEVICE_REQUEST, STATUS_INVALID_PARAMETER ou STATUS_NOT_SUPPORTED.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ntddstor.h (inclua Ntddstor.h) |