共用方式為


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 中定義的符號常數。

原則參數 Description
AUTO_SUSPEND

(0x81)

指定自動暫停原則類型;Power policy 參數必須由 Value 參數中的呼叫端指定。

針對自動暫停, Value 參數必須指向UCHAR變數。

如果 ValueTRUE (非零) ,則 USB 堆疊會在裝置閒置時暫停裝置。 如果沒有擱置的傳輸,或只有擱置的傳輸是 IN 傳輸來中斷或大量端點,裝置就會閒置。

默認值取決於 DefaultIdleState 登錄設定中設定的值。 根據預設,此值為 TRUE

SUSPEND_DELAY

(0x83)

指定暫停延遲原則類型;Power policy 參數必須由 Value 參數中的呼叫端指定。

針對暫止延遲, Value 必須指向ULONG變數。

會指定 WinUSB 驅動程式在暫停裝置之前,必須等候傳輸後的時間下限,以毫秒為單位。

默認值取決於 DefaultIdleTimeout 登錄設定中設定的值。 根據預設,此值為五秒。

[in] ValueLength

緩衝區的大小,以位元組為單位,位於 Value

[in] Value

電源原則參數的新值。 Value 的數據類型和值取決於 PolicyType 中傳遞的電源原則類型。 如需詳細資訊,請參閱 PolicyType

傳回值

如果 作業成功,WinUsb_SetPowerPolicy傳回 TRUE 。 否則,此函式會傳回 FALSE,而且呼叫端可以呼叫 GetLastError 來擷取記錄的錯誤。

GetLastError 可以傳回下列錯誤碼。

傳回碼 Description
ERROR_INVALID_HANDLE
呼叫端在 InterfaceHandle 參數中傳遞 NULL
ERROR_INVALID_PARAMETER
呼叫端在 ValueLength 參數中傳遞原則參數緩衝區的大小無效。
ERROR_NOT_ENOUGH_MEMORY
表示記憶體不足,無法執行作業。

備註

下列清單摘要說明電源管理狀態變更的影響:

  • 所有管道控點、介面控點、鎖定和替代設定都會在電源管理事件之間保留。
  • 當裝置傳輸至低電源狀態時,任何進行中的傳輸會暫停,而且當裝置還原為工作狀態時,就會繼續傳輸。
  • 裝置和系統必須處於工作狀態,用戶端才能還原裝置特定的設定。 用戶端可以從WM_POWERBROADCAST訊息判斷裝置和系統是否處於工作狀態。
  • 用戶端可以呼叫 WinUsb_SetPowerPolicy 來指出介面閒

規格需求

需求
目標平台 Universal
標頭 winusb.h (包含 Winusb.h)
程式庫 Winusb.lib
Dll Winusb.dll

另請參閱

WinUSB

WinUSB 函式

WinUSB 電源管理

WinUsb_Initialize