다음을 통해 공유


IOCTL_ACPI_GET_DEVICE_INFORMATION IOCTL(acpiioct.h)

디바이스용 드라이버는 IOCTL_ACPI_GET_DEVICE_INFORMATION 디바이스 제어 요청을 사용하여 디바이스에 대한 세분화된 식별 정보를 가져올 수 있습니다. 이 IOCTL은 일반적으로 디바이스의 여러 버전 또는 수정 버전을 지원하는 드라이버에서 사용되며, 디바이스의 HW ID 문자열을 구성하는 구성 요소 부분을 검사하여 정확한 디바이스를 식별해야 합니다. 드라이버는 IoBuildDeviceIoControlRequest 호출하고 다음 입력 및 출력 매개 변수를 전달하여 이 요청을 빌드해야 합니다.

주 코드

IRP_MJ_DEVICE_CONTROL

입력 버퍼

다음과 같이 IoBuildDeviceIoControlRequest 입력 매개 변수를 설정합니다.

  • IoControlCode IOCTL_ACPI_GET_DEVICE_INFORMATION 설정됩니다.
  • DeviceObject 디바이스의 PDO(물리적 디바이스 개체)에 대한 포인터로 설정됩니다.
  • InputBuffer 컨트롤 메서드에 전달할 입력 인수의 형식에 따라 달라지는 입력 버퍼 구조에 대한 포인터로 설정됩니다. 이 IOCTL에서 지원하는 입력 인수 유형에 대한 자세한 내용은 이 항목의 뒷부분에 있는 설명 섹션을 참조하세요.
  • InputBufferLengthInputBuffer제공된 입력 버퍼의 크기(바이트)로 설정됩니다.
  • OutputBufferLengthOutputBuffer제공된 출력 버퍼의 크기를 바이트 단위로 제공합니다.
  • InternalDeviceIoControl FALSE 설정됩니다.
  • 이벤트 NULL 설정됩니다.

입력 버퍼 길이

InputBufferLengthInputBuffer제공된 입력 버퍼의 크기(바이트)로 설정됩니다.

출력 버퍼

다음과 같이 IoBuildDeviceIoControlRequest 출력 매개 변수를 설정합니다.

출력 버퍼 길이

OutputBufferLengthOutputBuffer제공된 출력 버퍼의 크기를 바이트 단위로 제공합니다.

상태 블록

요청이 성공하면 IoStatusBlock ->상태 STATUS_SUCCESS; 그렇지 않으면 상태 멤버가 오류 코드로 설정됩니다. 출력 버퍼가 출력 버퍼 헤더를 포함할 만큼 충분히 크지 않으면 상태 멤버가 STATUS_BUFFER_TOO_SMALL 설정됩니다. 출력 버퍼가 출력 버퍼 헤더를 포함할 만큼 충분히 크지만 컨트롤 메서드의 모든 출력 인수를 포함할 만큼 크지 않은 경우 상태 멤버는 STATUS_BUFFER_OVERFLOW 설정되고 OutputBuffer->Length 출력 버퍼의 필수 길이로 설정됩니다.

요청이 성공하면 IoStatusBlock->Information 멤버는 출력 버퍼에 반환되는 바이트 수로 설정됩니다. 그렇지 않으면 Information 멤버가 0으로 설정됩니다.

발언

디바이스용 드라이버는 IOCTL_ACPI_GET_DEVICE_INFORMATION 사용하여 디바이스에 대한 세분화된 식별 정보를 얻을 수 있습니다. 이 IOCTL은 일반적으로 디바이스의 여러 하드웨어 버전 또는 수정 버전을 지원하는 드라이버와 함께 사용되며, 디바이스의 HW ID 문자열을 구성하는 구성 요소 부분을 검사하여 정확한 디바이스를 식별해야 합니다. 예를 들어 드라이버는 프로그래밍 인터페이스 또는 디바이스 동작의 일부 측면이 다른 동일한 디바이스의 다른 수정 버전을 지원할 수 있습니다. 드라이버는 실행 중인 수정 버전을 정확하게 식별할 수 있습니다.

요청의 출력 인수는 OutBuffer 포인터에서 제공하는 가변 길이 ACPI_DEVICE_INFORMATION_OUTPUT_BUFFER 구조로 반환됩니다. ACPI_DEVICE_INFORMATION_OUTPUT_BUFFER 각각 하위 시스템 ID 문자열, 공급업체 ID 문자열 및 인스턴스 ID 문자열을 나타내는 출력 인수를 반환하는 가변 길이 배열 배열을 포함합니다.

IOCTL_ACPI_GET_DEVICE_INFORMATION IRQL <= DISPATCH_LEVEL만 사용할 수 있습니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 8 이상 버전의 Windows.
헤더 acpiioct.h(Acpiioct.h 포함)

참고 항목

ACPI_DEVICE_INFORMATION_OUTPUT_BUFFER