diff --git a/00. Inbox/CPI Performance Control.canvas b/00. Inbox/CPI Performance Control.canvas deleted file mode 100644 index 2011297..0000000 --- a/00. Inbox/CPI Performance Control.canvas +++ /dev/null @@ -1,25 +0,0 @@ -{ - "nodes":[ - {"id":"e49621ce6a780ce3","x":-525,"y":-976,"width":245,"height":56,"type":"text","text":"[GetActivePwrScheme](https://learn.microsoft.com/en-us/windows/win32/api/powrprof/nf-powrprof-getactivepwrscheme)"}, - {"id":"8d16b3f9446a324d","x":-525,"y":-840,"width":245,"height":60,"type":"text","text":"[SetActivePwrScheme](https://learn.microsoft.com/en-us/windows/win32/api/powrprof/nf-powrprof-setactivepwrscheme)"}, - {"id":"e29ffcb5cdc3a145","x":-220,"y":-976,"width":400,"height":160,"type":"text","text":"[GLOBAL_POWER_POLICY](https://learn.microsoft.com/en-us/windows/win32/api/powrprof/ns-powrprof-global_power_policy)\n\n```c\ntypedef struct _GLOBAL_POWER_POLICY {\n GLOBAL_USER_POWER_POLICY user;\n GLOBAL_MACHINE_POWER_POLICY mach;\n} GLOBAL_POWER_POLICY, *PGLOBAL_POWER_POLICY;\n```"}, - {"id":"ec025701f01606c1","x":-220,"y":-780,"width":400,"height":160,"type":"text","text":"[POWER_POLICY](https://learn.microsoft.com/en-us/windows/win32/api/powrprof/ns-powrprof-power_policy)\n```c\ntypedef struct _POWER_POLICY {\n USER_POWER_POLICY user;\n MACHINE_POWER_POLICY mach;\n} POWER_POLICY, *PPOWER_POLICY;\n```"}, - {"id":"9f845940b99064cd","x":380,"y":-1203,"width":488,"height":510,"type":"text","text":"[USER_POWER_POLICY](https://learn.microsoft.com/en-us/windows/win32/api/powrprof/ns-powrprof-user_power_policy)\n```c\ntypedef struct _USER_POWER_POLICY {\n ULONG Revision;\n POWER_ACTION_POLICY IdleAc;\n POWER_ACTION_POLICY IdleDc;\n ULONG IdleTimeoutAc;\n ULONG IdleTimeoutDc;\n UCHAR IdleSensitivityAc;\n UCHAR IdleSensitivityDc;\n UCHAR ThrottlePolicyAc;\n UCHAR ThrottlePolicyDc;\n SYSTEM_POWER_STATE MaxSleepAc;\n SYSTEM_POWER_STATE MaxSleepDc;\n ULONG Reserved[2];\n ULONG VideoTimeoutAc;\n ULONG VideoTimeoutDc;\n ULONG SpindownTimeoutAc;\n ULONG SpindownTimeoutDc;\n BOOLEAN OptimizeForPowerAc;\n BOOLEAN OptimizeForPowerDc;\n UCHAR FanThrottleToleranceAc;\n UCHAR FanThrottleToleranceDc;\n UCHAR ForcedThrottleAc;\n UCHAR ForcedThrottleDc;\n} USER_POWER_POLICY, *PUSER_POWER_POLICY;\n```"}, - {"id":"84272070294ccf23","x":380,"y":-680,"width":488,"height":388,"type":"text","text":"[MACHINE_POWER_POLICY](https://learn.microsoft.com/en-us/windows/win32/api/powrprof/ns-powrprof-machine_power_policy)\n```c\ntypedef struct _MACHINE_POWER_POLICY {\n ULONG Revision;\n SYSTEM_POWER_STATE MinSleepAc;\n SYSTEM_POWER_STATE MinSleepDc;\n SYSTEM_POWER_STATE ReducedLatencySleepAc;\n SYSTEM_POWER_STATE ReducedLatencySleepDc;\n ULONG DozeTimeoutAc;\n ULONG DozeTimeoutDc;\n ULONG DozeS4TimeoutAc;\n ULONG DozeS4TimeoutDc;\n UCHAR MinThrottleAc;\n UCHAR MinThrottleDc;\n UCHAR pad1[2];\n POWER_ACTION_POLICY OverThrottledAc;\n POWER_ACTION_POLICY OverThrottledDc;\n} MACHINE_POWER_POLICY, *PMACHINE_POWER_POLICY;\n```"}, - {"id":"115ae73c803b7ac9","type":"text","text":"```cpp\n#include \n#include \n\nint main() {\n // 切換到高性能計畫\n GUID activeScheme;\n if (PowerGetActiveScheme(NULL, &activeScheme) == ERROR_SUCCESS) {\n if (PowerSetActiveScheme(NULL, &activeScheme) == ERROR_SUCCESS) {\n printf(\"Switched to high performance power plan.\\n\");\n } else {\n printf(\"Failed to switch power plan.\\n\");\n }\n } else {\n printf(\"Failed to get active power scheme.\\n\");\n }\n\n return 0;\n}\n```","x":-420,"y":760,"width":628,"height":375}, - {"id":"4e79032b1056ee16","x":380,"y":1063,"width":570,"height":72,"type":"text","text":"[Power Management Functions - Win32 apps | Microsoft Learn](https://learn.microsoft.com/en-us/windows/win32/power/power-management-functions)"}, - {"id":"f3b78e08a57270d5","x":380,"y":923,"width":570,"height":50,"type":"text","text":"[API for Minimum(Maximum) Processor State , C++ - Stack Overflow](https://stackoverflow.com/questions/22523708/api-for-minimummaximum-processor-state-c)"}, - {"id":"cf4ff9956a758755","x":-873,"y":923,"width":348,"height":175,"type":"text","text":"[WriteProcessorPwrScheme 函式 (powrprof.h) - Win32 apps | Microsoft Learn](https://learn.microsoft.com/zh-tw/windows/win32/api/powrprof/nf-powrprof-writeprocessorpwrscheme?redirectedfrom=MSDN)"}, - {"id":"4fa5457ba811c3cc","type":"text","text":"PowerWriteACValuesIndex\nPowerWriteDCValuesIndex","x":-960,"y":689,"width":354,"height":142}, - {"id":"a6fd325c1a234a01","type":"text","text":"[PowerGetActiveScheme](https://learn.microsoft.com/en-us/windows/win32/api/powersetting/nf-powersetting-powergetactivescheme)","x":-280,"y":200,"width":252,"height":65}, - {"id":"1e9a472de925cf55","x":-280,"y":365,"width":252,"height":60,"type":"text","text":"[PowerSetActiveScheme](https://learn.microsoft.com/en-us/windows/win32/api/powersetting/nf-powersetting-powersetactivescheme)"} - ], - "edges":[ - {"id":"f72398bc1ab6cd53","fromNode":"e49621ce6a780ce3","fromSide":"bottom","toNode":"8d16b3f9446a324d","toSide":"top","label":"uiID"}, - {"id":"2b7cb6155b2f27df","fromNode":"8d16b3f9446a324d","fromSide":"right","toNode":"e29ffcb5cdc3a145","toSide":"left"}, - {"id":"da68298d66592936","fromNode":"8d16b3f9446a324d","fromSide":"right","toNode":"ec025701f01606c1","toSide":"left"}, - {"id":"ac4f408559253c35","fromNode":"ec025701f01606c1","fromSide":"right","toNode":"9f845940b99064cd","toSide":"left"}, - {"id":"cdd03cafd7a17707","fromNode":"ec025701f01606c1","fromSide":"right","toNode":"84272070294ccf23","toSide":"left"}, - {"id":"c8cada0b4953dac7","fromNode":"a6fd325c1a234a01","fromSide":"bottom","toNode":"1e9a472de925cf55","toSide":"top","label":"SchemeGuid"} - ] -} \ No newline at end of file diff --git a/00. Inbox/CPU Performance Control.canvas b/00. Inbox/CPU Performance Control.canvas new file mode 100644 index 0000000..28b7db0 --- /dev/null +++ b/00. Inbox/CPU Performance Control.canvas @@ -0,0 +1,15 @@ +{ + "nodes":[ + {"id":"6df0eaf40a7d8727","x":1000,"y":-1200,"width":475,"height":880,"type":"group","label":"應該是可用的流程"}, + {"id":"de7e5a2cc42e64ed","x":1020,"y":-808,"width":429,"height":149,"type":"text","text":"[PowerWriteDCValueIndex](https://learn.microsoft.com/zh-tw/windows/win32/api/powersetting/nf-powersetting-powerwritedcvalueindex)\n```c\nPowerWriteDCValueIndex(NULL, scheme,\n &GUID_PROCESSOR_SETTINGS_SUBGROUP, \n &GUID_PROCESSOR_THROTTLE_MAXIMUM, percent);\n```"}, + {"id":"1e9a472de925cf55","type":"text","text":"[PowerSetActiveScheme](https://learn.microsoft.com/en-us/windows/win32/api/powersetting/nf-powersetting-powersetactivescheme)","x":1109,"y":-620,"width":252,"height":60}, + {"id":"f62cd6f094359169","x":1020,"y":-520,"width":435,"height":180,"type":"text","text":"# 參考\n- [Tweak CPU Power Elegantly on Windows - kkocdko's blog](https://kkocdko.site/post/202110041950)\n- [Powersetting.h header - Win32 apps | Microsoft Learn](https://learn.microsoft.com/en-us/windows/win32/api/powersetting/)"}, + {"id":"73203537aba83f20","x":1020,"y":-975,"width":429,"height":151,"type":"text","text":"[PowerWriteACValueIndex](https://learn.microsoft.com/en-us/windows/win32/api/powersetting/nf-powersetting-powerwriteacvalueindex)\n```c\nPowerWriteACValueIndex(NULL, scheme, \n &GUID_PROCESSOR_SETTINGS_SUBGROUP,\n &GUID_PROCESSOR_THROTTLE_MAXIMUM, percent);\n```"}, + {"id":"a6fd325c1a234a01","type":"text","text":"[PowerGetActiveScheme](https://learn.microsoft.com/en-us/windows/win32/api/powersetting/nf-powersetting-powergetactivescheme)\n```c\nGUID guid, *scheme = &guid; PowerGetActiveScheme(NULL, &scheme);\n```","x":1062,"y":-1180,"width":346,"height":125} + ], + "edges":[ + {"id":"c8cada0b4953dac7","fromNode":"a6fd325c1a234a01","fromSide":"bottom","toNode":"73203537aba83f20","toSide":"top","label":"SchemeGuid"}, + {"id":"d5fc60db374c853c","fromNode":"73203537aba83f20","fromSide":"bottom","toNode":"de7e5a2cc42e64ed","toSide":"top"}, + {"id":"66b5d1432c8e9232","fromNode":"de7e5a2cc42e64ed","fromSide":"bottom","toNode":"1e9a472de925cf55","toSide":"top"} + ] +} \ No newline at end of file