وضع أولوية موضوع في الخدمة له تأثير [مغلق]
-
04-07-2019 - |
سؤال
هل هناك بعض التكوين الإضافية اللازمة قبل أن أتمكن من تحديد الأولويات موضوع في خدمة ويندوز؟
في خدمة بلدي، ولدي المواضيع القليلة التي كل استدعاء الدالة CreateProcess()
لبدء تطبيق خارجي. وأود أن ضبط أولويات موضوع (أو عملية) لnormal
أو lower
، وهذا يتوقف على بعض العوامل الأخرى.
والمشكلة هي أن تفشل وظيفة SetThreadPriority()
مع وجود خطأ 6 (مقبض صالح؟). أنا تمرير في مقبض الحصول عليها من PROCESS_INFORMATION::hThread
(بعد استدعاء CreateProcess()
طبعا)، لذلك أعتقد أن التعامل مع يجب م> سارية المفعول.
ولقد حاولت ايضا وضع أولوية على العمليات باستخدام وظيفة SetPriorityClass()
، الذي فشل أيضا.
ويتم تسجيل هذه الخدمة على كمستخدم محلي.
المحلول
وربما لم يكن لديك حقوق الوصول الصحيحة؟ MSDN على SetThreadPriority يقول:
<اقتباس فقرة>وhThread [في] مؤشر إلى موضوع قيمتها الأولوية التي سيتم تحديدها.
ويجب أن يكون مقبض THREAD_SET_INFORMATION أو وصول THREAD_SET_LIMITED_INFORMATION حق. لمزيد من المعلومات، راجع كاتب الموضوع الأمن وحقوق الوصول.
ويندوز سيرفر 2003 وويندوز XP / 2000: يجب أن يكون مقبض حق الوصول THREAD_SET_INFORMATION.
اقتباس فقرة>