コントロール コード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 です。
lpOverlapped が NULL (非オーバーラップ I/O) の場合、lpOutBuffer が NULL であっても、lpBytesReturned を NULL にすることはできません。
lpOverlapped が NULL (重複 I/O) でない場合、lpBytesReturned は NULL にすることができます。 重複する操作の場合は、 GetOverlappedResult 関数を呼び出して返されるバイト数を取得できます。 hDevice が I/O 完了ポートに関連付けられている場合は、GetQueuedCompletionStatus 関数を呼び出すことによって返されるバイト数を取得できます。
-
lpOverlapped
-
OVERLAPPED 構造体へのポインター。
hDevice が FILE_FLAG_OVERLAPPED フラグで開かれた場合、lpOverlapped は有効な OVERLAPPED 構造体を指す必要があります。 この場合、 DeviceIoControl は重複する (非同期) 操作として実行されます。 デバイスが FILE_FLAG_OVERLAPPED フラグを使用して開き、 lpOverlapped が NULL の場合、関数は予期しない方法で失敗します。
FILE_FLAG_OVERLAPPED フラグを指定せずに hDevice を開いた場合、 lpOverlapped は無視され、操作が完了するまで、またはエラーが発生するまで DeviceIoControl 関数は返されません。
戻り値
操作が正常に完了すると、 DeviceIoControl は 0 以外の値を返します。
操作が失敗した場合、または保留中の場合、 DeviceIoControl は 0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
要求の BatteryTag 要素が現在のバッテリ タグの BatteryTag 要素と一致しない場合は常 Windows 10に、バッテリ情報のすべての要求がERROR_NO_SUCH_DEVICE (またはバージョン 1809 以前ではERROR_FILE_NOT_FOUND) の状態で完了します。 これにより、返されたバッテリー情報が要求されたバッテリーの情報と一致します (詳細については、「 バッテリー タグ 」を参照してください)。
注釈
要求のバッテリー タグが現在のバッテリ タグと一致しない場合、バッテリ情報を設定するすべての要求がERROR_FILE_NOT_FOUNDの状態で完了します。
この操作に対する重複した I/O の影響については、 DeviceIoControl トピックの「解説」セクションを参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows XP [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2003 [デスクトップ アプリのみ] |
Header |
|