سؤال

هل هناك بعض التكوين الإضافية اللازمة قبل أن أتمكن من تحديد الأولويات موضوع في خدمة ويندوز؟

في خدمة بلدي، ولدي المواضيع القليلة التي كل استدعاء الدالة 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top