IOCTL_BATTERY_SET_INFORMATION 제어 코드

다양한 배터리 정보를 설정합니다. BATTERY_SET_INFORMATION 입력 매개 변수 구조는 설정할 배터리 상태 정보를 나타냅니다.

이 작업을 수행하려면 다음 매개 변수를 사용하여 DeviceIoControl 함수를 호출합니다.

BOOL DeviceIoControl(
  (HANDLE) hDevice,              // handle to battery
  IOCTL_BATTERY_SET_INFORMATION, // dwIoControlCode
  (LPVOID) lpInBuffer,           // input buffer
  (DWORD) nInBufferSize,         // size of input buffer
  NULL,                          // lpOutBuffer
  0,                             // nOutBufferSize
  (LPDWORD) lpBytesReturned,     // number of bytes returned
  (LPOVERLAPPED) lpOverlapped    // OVERLAPPED structure
);

매개 변수

hDevice

정보를 설정할 배터리에 대한 핸들입니다. 디바이스 핸들을 검색하려면 CreateFile 함수를 호출합니다.

dwIoControlCode

작업에 대한 제어 코드입니다. 이 값은 수행할 특정 작업과 수행할 디바이스 유형을 식별합니다. 이 작업에 는 IOCTL_BATTERY_SET_INFORMATION 사용합니다.

lpInBuffer

BATTERY_SET_INFORMATION 구조체에 대한 포인터입니다.

nInBufferSize

입력 버퍼의 크기(바이트)입니다.

lpOutBuffer

이 작업에는 사용되지 않습니다. NULL로 설정됩니다.

nOutBufferSize

이 작업에는 사용되지 않습니다. 0으로 설정됩니다.

lpBytesReturned

lpOutBuffer 버퍼에 반환된 데이터의 크기를 바이트 단위로 받는 변수에 대한 포인터입니다.

출력 버퍼가 너무 작아서 데이터를 반환하지 못하면 호출이 실패하고 GetLastError 는 ERROR_INSUFFICIENT_BUFFER 오류 코드를 반환하고 반환된 바이트 수는 0입니다.

lpOverlappedNULL(오버랩되지 않은 I/O)인 경우 lpOutBufferNULL인 경우에도 lpBytesReturnedNULL일 수 없습니다.

lpOverlappedNULL(겹치는 I/O)이 아닌 경우 lpBytesReturnedNULL일 수 있습니다. 겹치는 작업인 경우 GetOverlappedResult 함수를 호출하여 반환되는 바이트 수를 검색할 수 있습니다. hDevice가 I/O 완성 포트와 연결된 경우 GetQueuedCompletionStatus 함수를 호출하여 반환되는 바이트 수를 가져올 수 있습니다.

lpOverlapped

OVERLAPPED 구조체에 대한 포인터입니다.

FILE_FLAG_OVERLAPPED 플래그를 사용하여 hDevice 를 연 경우 lpOverlapped 는 유효한 OVERLAPPED 구조를 가리킵니다. 이 경우 DeviceIoControl 은 겹치는(비동기) 작업으로 수행됩니다. 디바이스가 FILE_FLAG_OVERLAPPED 플래그로 열렸고 lpOverlappedNULL이면 예기치 않은 방식으로 함수가 실패합니다.

FILE_FLAG_OVERLAPPED 플래그를 지정하지 않고 hDevice 를 연 경우 lpOverlapped 가 무시되고 작업이 완료될 때까지 또는 오류가 발생할 때까지 DeviceIoControl 함수가 반환되지 않습니다.

반환 값

작업이 성공적으로 완료되면 DeviceIoControl 은 0이 아닌 값을 반환합니다.

작업이 실패하거나 보류 중인 경우 DeviceIoControl 은 0을 반환합니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

배터리 정보에 대한 모든 요청은 요청의 BatteryTag 요소가 현재 배터리 태그의 배터리 태그와 일치하지 않을 때마다 ERROR_NO_SUCH_DEVICE(또는 Windows 10 버전 1809 이하의 ERROR_FILE_NOT_FOUND)의 상태로 완료됩니다. 이렇게 하면 반환된 배터리 정보가 요청된 배터리의 정보와 일치합니다(자세한 내용은 배터리 태그 참조).

설명

요청의 배터리 태그가 현재 배터리 태그와 일치하지 않으면 배터리 정보를 설정하라는 모든 요청이 ERROR_FILE_NOT_FOUND 상태로 완료됩니다.

이 작업에 겹치는 I/O의 의미는 DeviceIoControl 항목의 설명 섹션을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2003 [데스크톱 앱만 해당]
헤더
Poclass.h;
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP의 Batclass.h

추가 정보

배터리 정보

전원 관리 제어 코드

DeviceIoControl

BATTERY_SET_INFORMATION

IOCTL_BATTERY_QUERY_INFORMATION

IOCTL_BATTERY_QUERY_STATUS

IOCTL_BATTERY_QUERY_TAG