IOCTL_ACPI_GET_DEVICE_INFORMATION IOCTL (acpiioct.h)

Um driver para um dispositivo pode usar o IOCTL_ACPI_GET_DEVICE_INFORMATION solicitação de controle de dispositivo para obter informações de identificação refinadas sobre seu dispositivo. Esse IOCTL normalmente é usado por drivers que dão suporte a várias versões ou revisões de um dispositivo e precisam examinar as partes do componente que compõem a cadeia de caracteres de ID HW do dispositivo para identificar o dispositivo exato. O driver deve chamar IoBuildDeviceIoControlRequest e passar os seguintes parâmetros de entrada e saída para compilar essa solicitação.

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de entrada

Defina os parâmetros de entrada IoBuildDeviceIoControlRequest da seguinte maneira:

  • IoControlCode é definido como IOCTL_ACPI_GET_DEVICE_INFORMATION.
  • DeviceObject é definido como um ponteiro para o PDO (objeto de dispositivo físico) do dispositivo.
  • InputBuffer é definido como um ponteiro para uma estrutura de buffer de entrada que depende do tipo de argumentos de entrada a serem passados para o método de controle. Para obter mais informações sobre o tipo de argumentos de entrada aos quais este IOCTL dá suporte, consulte a seção Comentários mais adiante neste tópico.
  • InputBufferLength é definido como o tamanho, em bytes, do buffer de entrada fornecido pelo InputBuffer.
  • OutputBufferLength fornece o tamanho, em bytes, do buffer de saída fornecido pelo OutputBuffer.
  • InternalDeviceIoControl é definido como FALSE.
  • O evento é definido como NULL.

Comprimento do buffer de entrada

InputBufferLength é definido como o tamanho, em bytes, do buffer de entrada fornecido pelo InputBuffer.

Buffer de saída

Defina os parâmetros de saída IoBuildDeviceIoControlRequest da seguinte maneira:

Comprimento do buffer de saída

OutputBufferLength fornece o tamanho, em bytes, do buffer de saída fornecido pelo OutputBuffer.

Bloco de status

Se a solicitação for bem-sucedida, IoStatusBlock-Status> será definido como STATUS_SUCCESS; caso contrário, o membro Status será definido como um código de erro. Se o buffer de saída não for grande o suficiente para conter o cabeçalho do buffer de saída, o membro Status será definido como STATUS_BUFFER_TOO_SMALL. Se o buffer de saída for grande o suficiente para conter o cabeçalho do buffer de saída, mas não for grande o suficiente para conter todos os argumentos de saída do método de controle, o membro Status será definido como STATUS_BUFFER_OVERFLOW e OutputBuffer-Length> será definido como o comprimento necessário do buffer de saída.

Se a solicitação for bem-sucedida, o membro IoStatusBlock-Information> será definido como o número de bytes retornados no buffer de saída; caso contrário, o membro Information será definido como zero.

Comentários

Um driver para um dispositivo pode usar IOCTL_ACPI_GET_DEVICE_INFORMATION para obter informações de identificação refinadas sobre seu dispositivo. Esse IOCTL normalmente é usado com drivers que dão suporte a várias versões de hardware ou revisões de um dispositivo e precisam examinar as partes de componente que compõem a cadeia de caracteres de ID HW do dispositivo para identificar o dispositivo exato. Por exemplo, um driver pode dar suporte a revisões diferentes do mesmo dispositivo, em que algum aspecto da interface de programação ou do comportamento do dispositivo é diferente. O driver pode identificar exatamente em qual revisão ele está sendo executado.

Os argumentos de saída da solicitação são retornados na estrutura de ACPI_DEVICE_INFORMATION_OUTPUT_BUFFER de comprimento variável fornecida pelo ponteiro OutBuffer . O ACPI_DEVICE_INFORMATION_OUTPUT_BUFFER inclui uma matriz de matrizes de comprimento variável, cada uma delas retorna um argumento de saída que representa a cadeia de caracteres de ID do subsistema, a cadeia de caracteres de ID do fornecedor e a cadeia de caracteres de ID da instância, respectivamente.

IOCTL_ACPI_GET_DEVICE_INFORMATION só pode ser usado em IRQL <= DISPATCH_LEVEL.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 e versões posteriores do Windows.
Cabeçalho acpiioct.h (include Acpiioct.h)

Confira também

ACPI_DEVICE_INFORMATION_OUTPUT_BUFFER