ऐसा करने के कुछ तरीके हैं। यदि आपको केवल एक विशिष्ट कार्यक्रम (या कुछ प्रोग्राम) से आने वाली प्रक्रिया निर्माण को ट्रैक करने की आवश्यकता है, तो यहां वर्णित ईज़ीहूक/डेटोरस विधि बहुत अच्छी तरह से काम करेगी, लेकिन आपको प्रत्येक प्रोग्राम में CreateProcess पर एक हुक स्थापित करने की आवश्यकता है, इसलिए यह एक नहीं है यदि आप सिस्टम में सभी प्रक्रिया निर्माण को ट्रैक करना चाहते हैं तो बहुत अच्छा समाधान।
इसके लिए एनटी-आधारित विंडोज वेरिएंट (एनटी/2000/एक्सपी/विस्टा) में PsSetCreateProcessNotifyRoutine() नामक एक विशिष्ट API है। दुर्भाग्यवश, आप केवल इस फ़ंक्शन को ring0 से कॉल कर सकते हैं, इसलिए इसे ड्राइवर में करने की आवश्यकता है। इस कोडप्रोजेक्ट आलेख में एक आसान स्पष्टीकरण (और कोड) है: http://www.codeproject.com/KB/threads/procmon.aspx।
AFAIK, यह सिर्फ एक अधिसूचना है, और यह स्वयं ही सिस्टम को बताने की अनुमति नहीं देता है कि प्रक्रिया बनाई जानी चाहिए या नहीं। हालांकि, अगर आपको ऐसा करने की ज़रूरत है, तो आप प्रक्रिया को रोक सकते हैं (उदा। इसे डीबगर के रूप में संलग्न करके) जबकि आपका कोड यह तय करता है कि इसे मारना है या नहीं।
कृपया इसे उत्पादन कोड में न करें, यह x64 पर काम नहीं करता है और यह बहुत गड़बड़ होने की संभावना है –