IOCTL_PMI_GET_CAPABILITIES IOCTL(pmi.h)
IOCTL_PMI_GET_CAPABILITIES 요청은 파워 미터에 대한 기능 및 자산 정보를 가져옵니다.
주 코드
입력 버퍼
IRP(I/O 요청 패킷)의 AssociatedIrp.SystemBuffer 멤버는 요청에 대한 입력 버퍼 및 출력 버퍼로 사용되는 초기자 할당 버퍼를 가리킵니다. 입력 시 이 버퍼에는 버전 및 CapabilityType 멤버가 유효한 값으로 설정된 PMI_CAPABILITIES 구조체가 포함됩니다. CapabilitiesType 멤버에는 파워 미터에서 검색할 PMI 기능 정보의 유형을 지정하는 PMI_CAPABILITIES_TYPE 열거형 값이 포함되어 있습니다. 이 값은 이 정보를 포함하는 데 필요한 출력 버퍼의 크기도 결정합니다.
입력 버퍼 길이
IRP의 현재 I/O 스택 위치(IO_STACK_LOCATION)의 Parameters.DeviceIoControl.InputBufferLength 멤버는 AssociatedIrp.SystemBuffer 멤버가 가리키는 버퍼의 크기(바이트)로 설정됩니다. 이 크기는 sizeof(PMI_CAPABILITIES)보다 크거나 같아야 합니다. 그렇지 않으면 STATUS_INVALID_PARAMETER 오류 상태로 요청이 실패합니다.
출력 버퍼
요청이 성공적으로 완료되면 AssociatedIrp.SystemBuffer 멤버가 가리키는 버퍼에 요청된 PMI 기능 정보가 포함됩니다. 이 버퍼의 시작 부분에는 버퍼에 있는 정보의 형식과 크기를 나타내는 PMI_CAPABILITIES 구조체가 있습니다.
출력 버퍼 길이
IRP의 현재 I/O 스택 위치의 Parameters.DeviceIoControl.OutputBufferLength 멤버는 AssociatedIrp.SystemBuffer 멤버가 가리키는 버퍼의 크기(바이트)로 설정됩니다. 요청이 성공하려면 이 크기가 PMI_CAPABILITIES_TYPE 입력 매개 변수 값으로 지정된 PMI 기능 정보를 포함할 만큼 충분히 커야 합니다. 그렇지 않으면 오류 상태 STATUS_BUFFER_TOO_SMALL 요청이 실패합니다.
상태 블록
Information 멤버는 PMI_CAPABILITIES 구조체 및 가변 길이 데이터의 크기(바이트)로 설정됩니다.
상태 멤버는 다음 값 중 하나로 설정됩니다.
STATUS_BUFFER_TOO_SMALL
Parameters.DeviceIoControl.OutputBufferLengthIRP 멤버는 PMI_CAPABILITIES 구조체 및 가변 길이 데이터의 크기(바이트)보다 작습니다.
STATUS_INVALID_PARAMETER
초기자가 할당한 입력 버퍼에 잘못된 PMI_CAPABILITIES_TYPE 값이 포함되어 있습니다.
STATUS_SUCCESS
PMI 인터페이스를 지원하는 WDM 드라이버가 IOCTL 요청을 성공적으로 완료했습니다.
발언
IOCTL_PMI_GET_CAPABILITIES 요청은 파워 미터의 PMI 기능 또는 자산 정보를 쿼리합니다. 입력 PMI_CAPABILITIES 열거형 값은 반환할 기능 정보의 형식을 지정합니다. 출력 버퍼의 데이터 형식 및 내용은 요청된 데이터에 따라 달라집니다.
다음 표에서는 지정된 PMI_CAPABILITIES_TYPE 열거형 값에 대해 반환되는 데이터 형식에 대해 설명합니다.
PMI_CAPABILITIES_TYPE 값 | 묘사 |
---|---|
PmiMeteredHardware | 전원 측정기가 모니터링하는 하드웨어 디바이스를 지정하는 PMI_METERED_HARDWARE_INFORMATION 구조체입니다. |
PmiReportedCapabilities |
파워 미터에서 지원하는 PMI 기능 유형을 지정하는 PMI_REPORTED_CAPABILITIES 구조체입니다.
참고PMI_REPORTED_CAPABILITIES 구조체는 가변 길이입니다. 출력 버퍼(IRP의 MdlAddress 멤버가 참조함)가 너무 작은 경우 드라이버는 이 IOCTL 요청에 실패해야 합니다.
|
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7, Windows Server 2008 R2 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
헤더 | pmi.h(Pmi.h 포함) |