
موضوع اصلی آموزش امروز ما در مورد IRQL است که می توان گفت یکی مهمترین مباحث موجود در دنیای درایور نویسی در ویندوز به حساب می آید. این مبحث کمی با مساله وقفه ها گره خورده است. در واقع این گره و ابهام به خاطر این است که ماکروسافت مستندات روشنی در این زمینه ارائه نکرده و از طرفی تشابه اسمی بین IRQL و IRQ ممکن است سوالاتی از قبیل: آیا این دو یکی هستند؟ آیا مربوط به سخت افزار می شوند؟ آیا مربوط به ویندوز می شوند؟ را به وجود می آورد. حداقل این ها سوالاتی بود که تا مدتی من درگیرشان بودم تا متوجه شدم موضوع از چه قرار است. و از أنجایی که در پست های آینده با اصطلاحاتی مانن...
ادامه مطلب
در این پست می خواهم در مورد چگونگی کار با دیباگر windbg توضیحاتی بدهم. این آموزش با آموزش هایی که در آینده در مورد درایور نویس قرار می دهم مرتبط خواهد بود. مقدمه windbg دیباگری است که توسط ماکروسافت ایجاد شده و در قالب بسته ای به نام Debugging Tools for Windows از سایت ماکروسافت قابل دریافت است. این بسته را می شود جداگانه دریافت کرد و مورد استفاده قرار داد ولی در حال حاظر و در چند ورژن اخیر این بسته همراه بسته هایی نظیر SDK و WDK عرضه می شود. در نتیجه اگر بسته WDK را از پست های قبلی که گفته ام دریافت کرده اید و در هنگام نصب گزینه مربوط به دیباگر را انتخاب کرده باشید باید این اب...
ادامه مطلب
مدت زیادی شده که اینجا پستی قرار نداده ام. یکسری دوستان با کامنت ها و ایمیل هاشون ما را حسابی شرمنده میکنند که لازم از همه این عزیزان تشکر کنم بابت محبتشون. به هر حال گفتیم بعد این همه مدت یه پست کوتاهی قرار بدیم و یکسری کتاب معرفی کنیم با این امید که بدرد افرادی که به این موضوعات علاقه دارند بخوره و از این کتاب ها در نبود ما استفاده کنند. کتاب ها رو به ترتیب تاریخ انتشارشون از جدید به قدیم معرفی میکنم. یه توضیح مختصری هم برای بعضی کتاب ها داده ام کتابهای مربوط به درایور نویسی عنوان: Developing Drivers with the Windows Driver Foundation تعداد صفحه: 928 انتشارات: MS Press سال چاپ: 20...
ادامه مطلب
در آموزش های قبلی به صورت خیلی خلاصه در مورد روش هایی که یک درایور می تواند با برنامه سطح کاربر ارتباط برقرار کند صحبت کردیم و برای یکی از این روش ها که IOCTL بود مثالی آوردیم. در این آموزش سعی می کنم این روش ها را با جزئیات بیشتری به همراه مثال شرح بدهم. در طول آموزش موضوعات دیگری هم مطرح می شود و برای این که ساختار آموزش بهم نریزد توضیحات مربوطه را بصورت جداگانه در انتهای این آموزش آورده ام. سرفصل مطالب این بخش راه های دسترسی به بافر داده روش Buffered I/O روش Direct I/O روش نه Buffered I/O و نه Direct I/O مقدار دادن DEVICE_OBJECT.Flags موضوعات جداگانه درخواست ها حافظه از نوع Nonepag...
ادامه مطلب