2009-05-18 21 views
18

क्या किसी के पास कोई भी पुस्तक/ट्यूटोरियल है जो विंडोज डिवाइस ड्राइवर विकास में शुरू करने में उपयोगी हो सकता है?चालक विकास पर शुरू करना

सादे Win32/GUI विकास के लिए, पेटज़ोल्ड की पुस्तक आवश्यक संदर्भ प्रतीत होती है। क्या ड्राइवरों के लिए यह अस्तित्व में है?

मैं ध्यान दें कि मैं वास्तव में हार्डवेयर के लिए बात कर रहा हूँ नहीं चाहते हैं - मैं वास्तव में सॉफ्टवेयर में हार्डवेयर का एक टुकड़ा का अनुकरण करना चाहते हैं, लेकिन मैं कैसे चीजें सामान्य पहले में काम देखना चाहते हैं। के प्रति सतर्क रहने

Billy3

उत्तर

11

एक बात डिवाइस ड्राइवर विकास (वास्तुकला और उपकरण) Win32 विकास की तुलना में अधिक बदल जाता है ... इसलिए जब 1990 के दशक से पेज़ॉल्ड की किताब Win32 के लिए ठीक है और एक कालातीत क्लासिक माना जा सकता है , कई प्रकार के ड्राइवरों (प्रिंटर ड्राइवर, नेटवर्क ड्राइवर, आदि) के लिए आर्किटेक्चर विभिन्न ओ/एस रिलीज में भिन्न है।

यहाँ एक ब्लॉग प्रविष्टि जो विभिन्न पुस्तकों की समीक्षा करता है: Windows Device Drivers Book Reviews

भूल मत माइक्रोसॉफ्ट प्रलेखन DDK के साथ शामिल: और, सबसे महत्वपूर्ण बात, नमूना ड्राइवरों (स्रोत कोड) DDK के साथ शामिल थे। जब मैं एक नकली सीरियल पोर्ट ड्राइवर लिखना चाहता था, उदाहरण के लिए, मैंने पाया कि डीडीके दस्तावेज के साथ संयुक्त नमूना सीरियल ड्राइवर दस्तावेज अमूल्य (और पर्याप्त) था।

+0

मैं यह भी जोड़ूंगा कि ntdev मेलिंग सूची (http://www.osronline.com/cf.cfm?PageURL=showlists.CFM?list=NTDEV) की सदस्यता लेने का अच्छा विचार है क्योंकि यह एक हो सकता है जानकारी का महान स्रोत, साथ ही सामान्य गलतियों को इंगित करना। – BCran

+0

किसी भी चीज़ से पहले आपको ऑपरेटिंग सिस्टम अवधारणा से परिचित होना चाहिए और इसके बाद आपको विंडोज ओएस से परिचित होना चाहिए (मार्क रसेलिनोविच की विंडोज़ आंतरिक पढ़ें) – AminM

1

मैं this one जैसे समृद्ध उदाहरणों के साथ ट्यूटोरियल्स की खोज करूंगा। विंडोज चालक विकास में सार परतों और आईआरपी, आईआरक्यूएल, और फिल्टर ड्राइवरों जैसे शब्दों को जानने के लिए चित्र प्राप्त करना है। यदि आप उदाहरण कोड ढूंढ रहे हैं, तो मेरा स्पोडेक ड्राइवर कोड यहां है: sf.net link। आपको सिस्टम में उपस्थिति को छिपाने के लिए एक फ़िल्टर ड्राइवर (कीबोर्ड, keyb.c के लिए), कर्नेल स्पेस कतार (queue.c) और तकनीकें मिलेंगी। हालांकि यह एक विरासत (sys) चालक है।

1

आपको शायद पुराने डब्लूडीएम ढांचे के बजाय हाल ही में विंडोज चालक फाउंडेशन (डब्ल्यूडीएफ) ढांचे का उपयोग करना चाहिए। एक अच्छा प्रारंभिक बिंदु WDF Overview Word documents पढ़ रहा है।

आप एक किताब को पढ़ने के लिए चाहते हैं, "Developing Drivers with the Windows Driver Foundation" एक आप के लिए देख रहे हैं।

+0

बहुत बुरा मुझे Win2k का समर्थन करना होगा :( –

6

कर्नेल विकास को अच्छी तरह से सीखने के लिए:

ए। नमूने गिरी कार्यक्रमों के बहुत सारे:

Windows DDK नमूना:

http://social.msdn.microsoft.com/Forums/en-US/softwaretesting/thread/08690203-1757-4129-b59a-6bae10bcdce8/

WDK नमूने:

http://msdn.microsoft.com/en-us/windows/hardware/gg487428

या सिर्फ खोज:

http://www.google.com/search?q=windows+ddk+samples

(ऊपर URL बदल सकते हैं क्योंकि, लेकिन गूगल की संभावना यू सबसे उपयुक्त/पहुँच में एक वापस जाने के लिए होगा)

ज।, और जो बीच में मैं सबसे अच्छा पाया डिबगिंग तकनीक के बहुत सारे VMware (या VirtualBox) है + windbg + सीरियल पोर्ट डिबगिंग:

http://www.google.com/search?q=windbg+vmware+kernel+debug

और इस कागज का उपयोग कर के लिए क्लासिक है VMWare + windbg (Ring0 के यहोवा) :

http://silverstr.ufies.org/lotr0/windbg-vmware.html

सी। साथ ही साथ सिस्टम व्यवस्थापक उपकरण, जो दूसरों का निर्माण किया है:

http://technet.microsoft.com/en-us/sysinternals/bb545021

(मार्क Russinovich, "विंडोज आंतरिक" के सह लेखक द्वारा बनाया गया अतीत बुलाया SysInternals में - अवश्य पढ़ें !!)

http://technet.microsoft.com/en-us/sysinternals/bb963901

इन उपकरणों से आपके पास अत्यधिक डिबगिंग विकल्प होंगे।

डी। OSR मेलिंग सूची में शामिल (ntdev विशेष रूप से बहुत सक्रिय है, लेकिन वहां windbg अन्य लोगों की तरह कर रहे हैं):

http://www.osronline.com/page.cfm?name=ListServer

ई। Channel9 पर + गिरी खिड़कियों से संबंधित वीडियो के बहुत सारे देखो (गूगल 1000 से अधिक लिंक लौटे):

http://www.google.com/search?q=site:channel9.msdn.com+kernel+video&num=100

च। चर्चा मंच की तरह:

http://social.microsoft.com/Forums/en-us/kernel/threads

http://social.msdn.microsoft.com/Forums/en-US/wdk/threads

मुक्त OSR पत्रिका भी (हार्डकॉपी) की सदस्यता ली। मुझे अब तक 1 99 8 से मेरा प्राप्त हुआ है - और इसे पृथ्वी के चारों तरफ आधा रास्ता दिया गया है!

1

व्यक्तिगत रूप से विकास शुरू करने का सबसे अच्छा तरीका वास्तविक दुनिया के जोखिम से है। इसे ध्यान में रखते होने मैं इस पुस्तक recomment था

The Rootkit Arsenal: Escape and Evasion in the Dark Corners of the System

The Rootkit Arsenal Cover

यह आप कुछ कोड चल रहा है जो "कुछ" तुम हो तो बाद में करता है करने के लिए शुरू करने के लिए पर्याप्त होना चाहिए सामान्य तस्वीर जो आप विषयों पर रह सकते हैं - बुफर्ड/न तो/डायरेक्ट विधियों और उनके साथ जुड़ी विशिष्टताओं के बीच अंतर।

"कुछ ड्राइवरों के बारे में विवरण की आवश्यकता होने पर" विंडोज़ ड्राइवर मॉडल प्रोग्रामिंग, दूसरा संस्करण "प्रोग्रामिंग भी एक बड़ी मदद है। लेकिन सबसे पहले मुझे विश्वास है कि चीजों को संदर्भ में रखना और फिर उस पर निर्माण करना सबसे महत्वपूर्ण बात है।

संबंधित मुद्दे