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變數。 如果 Value 為 TRUE (非零) ,則 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 |
---|---|
|
呼叫端在 InterfaceHandle 參數中傳遞 NULL。 |
|
呼叫端在 ValueLength 參數中傳遞原則參數緩衝區的大小無效。 |
|
表示記憶體不足,無法執行作業。 |
備註
下列清單摘要說明電源管理狀態變更的影響:
- 所有管道控點、介面控點、鎖定和替代設定都會在電源管理事件之間保留。
- 當裝置傳輸至低電源狀態時,任何進行中的傳輸會暫停,而且當裝置還原為工作狀態時,就會繼續傳輸。
- 裝置和系統必須處於工作狀態,用戶端才能還原裝置特定的設定。 用戶端可以從WM_POWERBROADCAST訊息判斷裝置和系統是否處於工作狀態。
- 用戶端可以呼叫 WinUsb_SetPowerPolicy 來指出介面閒 置。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | winusb.h (包含 Winusb.h) |
程式庫 | Winusb.lib |
Dll | Winusb.dll |