Condividi tramite


IOCTL_ACPI_GET_DEVICE_INFORMATION IOCTL (acpiioct.h)

Un driver per un dispositivo può usare la richiesta di controllo del dispositivo IOCTL_ACPI_GET_DEVICE_INFORMATION per ottenere informazioni di identificazione con granularità fine sul dispositivo. Questo IOCTL viene in genere usato dai driver che supportano più versioni o revisioni di un dispositivo e devono esaminare le parti del componente che costituiscono la stringa ID HW del dispositivo per identificare il dispositivo esatto. Il driver deve chiamare IoBuildDeviceIoControlRequest e passare i parametri di input e output seguenti per compilare questa richiesta.

Codice principale

IRP_MJ_DEVICE_CONTROL

Buffer di input

Impostare il IoBuildDeviceIoControlRequest parametri di input come indicato di seguito:

  • IoControlCode è impostato su IOCTL_ACPI_GET_DEVICE_INFORMATION.
  • DeviceObject è impostato su un puntatore all'oggetto dispositivo fisico (PDO) del dispositivo.
  • inputBuffer è impostato su un puntatore a una struttura del buffer di input che dipende dal tipo di argomenti di input da passare al metodo di controllo. Per altre informazioni sul tipo di argomenti di input supportati da questo IOCTL, vedere la sezione Osservazioni più avanti in questo argomento.
  • InputBufferLength è impostato sulle dimensioni, in byte, del buffer di input fornito da InputBuffer.
  • OutputBufferLength fornisce le dimensioni, in byte, del buffer di output fornito da OutputBuffer.
  • InternalDeviceIoControl è impostato su FALSE.
  • evento è impostato su NULL.

Lunghezza del buffer di input

InputBufferLength è impostato sulle dimensioni, in byte, del buffer di input fornito da InputBuffer.

Buffer di output

Impostare i parametri di output IoBuildDeviceIoControlRequest come segue:

Lunghezza del buffer di output

OutputBufferLength fornisce le dimensioni, in byte, del buffer di output fornito da OutputBuffer.

Blocco di stato

Se la richiesta ha esito positivo, IoStatusBlock ->Stato è impostato su STATUS_SUCCESS; in caso contrario, il membro stato è impostato su un codice di errore. Se il buffer di output non è sufficientemente grande da contenere l'intestazione del buffer di output, il membro Stato è impostato su STATUS_BUFFER_TOO_SMALL. Se il buffer di output è sufficientemente grande da contenere l'intestazione del buffer di output, ma non è sufficientemente grande da contenere tutti gli argomenti di output dal metodo di controllo, il membro Status è impostato su STATUS_BUFFER_OVERFLOW e OutputBuffer->Length è impostato sulla lunghezza necessaria del buffer di output.

Se la richiesta ha esito positivo, il IoStatusBlock->membro Information viene impostato sul numero di byte restituiti nel buffer di output; in caso contrario, il membro Information è impostato su zero.

Osservazioni

Un driver per un dispositivo può usare IOCTL_ACPI_GET_DEVICE_INFORMATION per ottenere informazioni di identificazione con granularità fine sul dispositivo. Questo IOCTL viene in genere usato con driver che supportano più versioni hardware o revisioni di un dispositivo ed è necessario esaminare le parti del componente che costituiscono la stringa ID HW del dispositivo per identificare il dispositivo esatto. Ad esempio, un driver può supportare revisioni diverse dello stesso dispositivo, in cui alcuni aspetti dell'interfaccia di programmazione o del comportamento del dispositivo sono diversi. Il driver può identificare esattamente la revisione in cui è in esecuzione.

Gli argomenti di output della richiesta vengono restituiti nella struttura di ACPI_DEVICE_INFORMATION_OUTPUT_BUFFER a lunghezza variabile fornita dal puntatore OutBuffer. Il ACPI_DEVICE_INFORMATION_OUTPUT_BUFFER include una matrice di matrici a lunghezza variabile, ognuna delle quali restituisce un argomento di output che rappresenta rispettivamente la stringa ID del sistema secondario, la stringa ID fornitore e la stringa ID istanza.

IOCTL_ACPI_GET_DEVICE_INFORMATION può essere usato solo in irQL <= DISPATCH_LEVEL.

Fabbisogno

Requisito Valore
client minimo supportato Windows 8 e versioni successive di Windows.
intestazione acpioct.h (include Acpiioct.h)

Vedere anche

ACPI_DEVICE_INFORMATION_OUTPUT_BUFFER