BCLASS_QUERY_INFORMATION_CALLBACK 콜백 함수(batclass.h)
BatteryMiniQueryInformation 은 지정된 배터리 디바이스에 대한 정보를 반환합니다.
구문
BCLASS_QUERY_INFORMATION_CALLBACK BclassQueryInformationCallback;
NTSTATUS BclassQueryInformationCallback(
[in] PVOID Context,
[in] ULONG BatteryTag,
[in] BATTERY_QUERY_INFORMATION_LEVEL Level,
[in] LONG AtRate,
[out] PVOID Buffer,
[in] ULONG BufferLength,
[out] PULONG ReturnedLength
)
{...}
매개 변수
[in] Context
배터리 디바이스에 대한 미니클래스 드라이버가 할당한 컨텍스트 영역에 대한 포인터입니다.
[in] BatteryTag
BatteryMiniQueryTag에서 이전에 반환한 배터리 태그에 대한 포인터입니다.
[in] Level
반환할 배터리 정보의 유형입니다. 가능한 값은 다음과 같습니다.
BatteryInformationBatteryGranularityInformationBatteryTemperatureBatteryEstimatedTimeBatteryDeviceNameBatteryManufactureDateBatteryManufactureNameBatteryUniqueIDBatterySerialNumber
[in] AtRate
배터리를 방전하는 시간을 계산하는 데 사용되는 음수 밀리와트 단위의 드레이닝 속도입니다. 이 매개 변수는 Level 이 BatteryEstimatedTime인 경우에만 의미가 있습니다. 이 매개 변수는 Level의 다른 모든 값에 대해 무시됩니다.
[out] Buffer
배터리 클래스 드라이버에서 할당한 버퍼에 대한 포인터입니다. 버퍼는 요청된 정보를 반환하는 데 사용됩니다. 버퍼는 요청된 정보를 반환하는 데 사용됩니다. 미니클래스 드라이버는 다음과 같이 Level 값에 따라 버퍼의 콘텐츠 형식을 지정합니다.
BatteryInformation
BATTERY_INFORMATION 구조체로 서식이 지정된 정보를 반환합니다.
BatteryGranularityInformation
나머지 용량의 보고 세분성을 포함하는 BATTERY_REPORTING_SCALE 형식의 가변 길이 배열을 반환합니다. 반환되는 항목 수는 반환된 버퍼의 크기에 따라 배터리당 최대 4개의 항목으로 달라집니다.
BatteryTemperature
배터리의 현재 온도를 켈빈의 10분의 1로 제공하는 ULONG 값을 반환합니다.
BatteryEstimatedTime
AtRate에 지정된 드레이닝 속도에 따라 배터리에 남아 있는 실행 시간(초)을 예측하는 ULONG 값을 반환합니다. AtRate가 음수 또는 0인 경우 미니클래스 드라이버는 현재 드레이닝 속도에 따라 런타임을 계산해야 합니다. 그러나 드라이버가 예상을 할 수 없는 경우(예: AtRate 가 0이고 배터리가 방전되지 않음) BATTERY_UNKNOWN_TIME 반환해야 합니다.
BatteryDeviceName
배터리 이름을 지정하는 유니코드 문자열을 반환합니다. 예를 들어 DR202는 Duracell 스마트 배터리를 식별합니다.
BatteryManufactureDate
배터리 제조 날짜를 지정하는 BATTERY_MANUFACTURE_DATE 구조를 반환합니다.
BatteryManufactureName
제조업체가 배터리에 지정한 모델 이름을 지정하는 유니코드 문자열을 반환합니다.
BatteryUniqueID
배터리를 고유하게 식별하는 유니코드 문자열(일반적으로 배터리 제조업체, 날짜 및 일련 번호의 연결)을 반환합니다.
BatterySerialNumber
배터리의 일련 번호가 포함된 유니코드 문자열을 반환합니다.
[in] BufferLength
버퍼가 가리키는 버퍼의 길이(바이트)입니다.
[out] ReturnedLength
버퍼가 가리키는 버퍼에서 반환되는 바이트 수입니다.
반환 값
BatteryMiniQueryInformation 은 다음 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
BatteryTag에서 지정한 배터리가 현재 설치되어 있으며 요청된 정보가 반환되었습니다. |
|
BatteryTag에서 지정한 배터리가 없습니다. |
|
Level 매개 변수는 이 배터리가 지원하지 않는 정보를 지정합니다. |
|
Level 매개 변수는 나열된 열거자 중 하나가 아닙니다. |
설명
배터리 클래스 드라이버는 미니클래스 드라이버의 BatteryMiniQueryInformation 루틴을 호출하여 배터리에 대한 다양한 유형의 정보를 가져옵니다. 반환되는 정보는 Level 매개 변수에 따라 달라집니다. 모든 배터리가 클래스 드라이버가 요청할 수 있는 가능한 모든 정보 유형을 지원하는 것은 아닙니다. 미니 클래스 드라이버는 이러한 요청에 대한 STATUS_INVALID_DEVICE_REQUEST 반환해야 합니다.
Level 이 BatteryInformation을 지정하는 경우 미니클래스 드라이버는 버퍼가 가리키는 버퍼의 BATTERY_INFORMATION 구조를 반환해야 합니다. 이 구조에는 기능, 기술(배터리 충전 가능 여부), 화학, 이론적 및 실제 전체 충전 용량, 중요한 바이어스, 충전/방전 주기 수 및 경고 경고가 발생하는 용량 수준을 포함하여 배터리에 대한 상태 정보가 포함되어 있습니다.
Level 이 BatteryGranularityInformation을 지정하는 경우 미니클래스 드라이버는 BATTERY_REPORTING_SCALE 구조체로 서식이 지정된 1~4개의 요소 배열을 반환할 수 있습니다. 배열의 각 요소는 세분성 값과 남은 용량 값(밀리와트시)으로 구성됩니다. 세분성은 측정의 정밀도를 나타내므로 용량의 정확도를 나타내는 지표입니다.
대부분의 배터리 유형은 용량을 단일 규모로 보고합니다. 이러한 배터리의 미니클래스 드라이버는 하나의 항목만 반환하여 남은 용량과 배율의 정밀도를 제공합니다. 그러나 일부 배터리에는 용량이 50% 미만인지 여부를 측정하는 총 크기 조정과 용량이 0에 가까워지면 적용되는 더 미세한 크기 조정이라는 두 가지 크기가 있습니다. 이러한 배터리의 미니클래스 드라이버는 두 배율을 설명하는 두 개의 항목을 반환해야 합니다.
Level이 BatteryEstimatedTime을 지정하는 경우 미니클래스 드라이버는 선택적 AtRate 매개 변수를 사용하여 배터리를 사용하기 위해 남은 시간을 예측해야 합니다. AtRate 매개 변수는 음수 밀리와트 단위의 드레이닝 속도를 지정합니다.
Level이 BatteryUniqueId를 지정하는 경우 미니클래스 드라이버는 이 특정 배터리를 고유하게 식별하는 문자열을 반환해야 합니다. 제어 방법 및 스마트 배터리의 경우 고유 ID는 제조 이름, 장치 이름, 제조 날짜 및 배터리 일련 번호의 ASCII 표현의 연결입니다. 이 값은 표시되지 않습니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | batclass.h(Batclass.h 포함) |
IRQL | PASSIVE_LEVEL |