एक ही रास्ता मैं जानता हूँ कि और अब तक का इस्तेमाल किया है चल रही प्रक्रियाओं की प्रत्येक में और उस प्रक्रिया प्रत्येक वृद्धि हुई संकल्प के लिए timeEndPeriod
बुला अंदर इंजेक्शन है इन प्रस्तावों पर एक पाश में (1-15 को महत्व देता है) और देखना हो के लिए timeEndPeriod
कॉल एक वर्तमान संकल्प TIMERR_NOCANDO
या TIMERR_NOERROR
लौटाता है (नोट: ये वापसी मान संगत रूप से झूठे और सत्य नहीं हैं)। और यदि यह TIMERR_NOERROR
देता है तो यह निष्कर्ष निकाला जाता है कि प्रोग्राम उस आवृत्ति का उपयोग कर रहा है, और उसके बाद प्रोग्राम द्वारा अनुरोध किए गए मूल समाधान को पुनर्स्थापित करने के लिए timeBeginPeriod
पर कॉल कर रहा है।
दुर्भाग्यवश यह विधि 0.5 एमएस टाइमर संकल्पों का पता नहीं लगाती है जिसे अनियंत्रित NtSetTimerResolution
फ़ंक्शन द्वारा सेट किया जा सकता है।
आप लगातार तो ntdll.dll में गैर-दस्तावेजी NtSetTimerResolution
समारोह के लिए कॉल hooking नई टाइमर प्रस्तावों की निगरानी करना चाहते हैं जिस तरह से मैं वर्तमान में (समारोह के हस्ताक्षर here से उदाहरण के लिए लिया जा सकता है) का उपयोग है।
दुर्भाग्य hooking टाइमर प्रस्तावों कि हुक स्थापित किया गया था इससे पहले कि अनुरोध किया गया पता नहीं लगा पाया है, तो आप इसके बाद के संस्करण timeEndPeriod
चाल और टिप्पणी भी कि hooking मनाने से पहले 0.5 एमएस संकल्प अनुरोध चल पाता साथ संयोजित करने की जरूरत है।
और मैं सहमत हूं, यह विधि बोझिल लगती है। इसके अलावा, यह थोड़ा घुसपैठ कर रहा है क्योंकि यह प्रक्रिया की स्थिति को संशोधित करता है, और यह भी मानता है कि आप सभी प्रक्रियाओं में इंजेक्ट करने में सक्षम हैं।
यदि किसी के पास बेहतर तरीके हैं, तो मुझे उनके बारे में जानने में दिलचस्पी होगी।
स्रोत
2014-05-20 03:34:42
Powercfg.exe/ऊर्जा एक स्लिम रिपोर्ट उत्पन्न करेगी जो बुराई करने वाले को उंगली देगी। इस तरह के प्रश्न पूछने के लिए superuser.com का प्रयोग करें। –
@ हंसपैसेंट धन्यवाद लेकिन यह काम नहीं किया। रिपोर्ट में कहा गया है 'अनुरोध संख्या 1' लेकिन यह नहीं दिखाता कि किसने इसका अनुरोध किया था। मैंने पूरी रिपोर्ट अपलोड की [यहां] (http://rustyx.org/energy-report.html)। – rustyx
Powercfg.exe/ऊर्जा यह नहीं कर रहा है, इंटेल इसे कर सकता है। मैं एपीआई कॉल भी देखना चाहता हूं। – Arno