WinUsb_SetPowerPolicy関数 (winusb.h)

WinUsb_SetPowerPolicy関数は、デバイスの電源ポリシーを設定します。

構文

BOOL WinUsb_SetPowerPolicy(
  [in] WINUSB_INTERFACE_HANDLE InterfaceHandle,
  [in] ULONG                   PolicyType,
  [in] ULONG                   ValueLength,
  [in] PVOID                   Value
);

パラメーター

[in] InterfaceHandle

WinUsb_Initialize によって返される、デバイス上の最初の (既定の) インターフェイスへの不透明なハンドル。

[in] PolicyType

設定する電源ポリシーを指定する 値。 次の表では、winusbio.h で定義されているシンボリック定数について説明します。

Policy パラメーター 説明
AUTO_SUSPEND

(0x81)

自動中断ポリシーの種類を指定します。電源ポリシー パラメーターは、呼び出し元で Value パラメーターで指定する必要があります。

自動中断の場合、 Value パラメーターは UCHAR 変数を指す必要があります。

ValueTRUE (0 以外) の場合、デバイスがアイドル状態の場合、USB スタックはデバイスを中断します。 保留中の転送がない場合、または保留中の転送が割り込みエンドポイントまたは一括エンドポイントへの IN 転送のみである場合、デバイスはアイドル状態になります。

既定値は、 DefaultIdleState レジストリ設定で設定された値によって決まります。 既定では、この値は TRUE です

SUSPEND_DELAY

(0x83)

中断遅延ポリシーの種類を指定します。電源ポリシー パラメーターは、呼び出し元で Value パラメーターで指定する必要があります。

中断遅延の場合、 Value は ULONG 変数を指す必要があります。

は、WinUSB ドライバーがデバイスを中断する前に転送後に待機する必要がある最小時間 (ミリ秒単位) を指定します。

既定値は、 DefaultIdleTimeout レジストリ設定で設定された値によって決まります。 既定で、この値は 5 秒です。

[in] ValueLength

Value のバッファーのサイズ (バイト単位)。

[in] Value

電源ポリシー パラメーターの新しい値。 Value のデータ型と値は、PolicyType で渡される電源ポリシーの種類によって異なります。 詳細については、「 PolicyType」を参照してください。

戻り値

操作が 成功した場合、WinUsb_SetPowerPolicy は TRUE を 返します。 それ以外の場合、この関数は FALSE を返し、呼び出し元は GetLastError を呼び出すことによってログに記録されたエラーを取得できます。

GetLastError は 、次のエラー コードを返すことができます。

リターン コード 説明
ERROR_INVALID_HANDLE
呼び出し元は InterfaceHandle パラメーターに NULL を渡しました。
ERROR_INVALID_PARAMETER
呼び出し元が ValueLength パラメーターでポリシー パラメーター バッファーの無効なサイズを渡しました。
ERROR_NOT_ENOUGH_MEMORY
操作を実行するためのメモリが不足していることを示します。

注釈

次の一覧は、電源管理の状態に対する変更の影響をまとめたものです。

  • すべてのパイプ ハンドル、インターフェイス ハンドル、ロック、および代替設定は、電源管理イベント間で保持されます。
  • 進行中の転送は、デバイスが低電力状態に転送されると中断され、デバイスが動作状態に復元されると再開されます。
  • クライアントがデバイス固有の構成を復元するには、デバイスとシステムが動作状態である必要があります。 クライアントは、デバイスとシステムがWM_POWERBROADCAST メッセージから動作状態であるかどうかを判断できます。
  • クライアントは、 WinUsb_SetPowerPolicyを呼び出すことによって、インターフェイスがアイドル状態であることを示すことができます。

要件

要件
対象プラットフォーム ユニバーサル
Header winusb.h (Winusb.h を含む)
Library Winusb.lib
[DLL] Winusb.dll

こちらもご覧ください

WinUSB

WinUSB 関数

WinUSB 電源管理

WinUsb_Initialize