PDA

View Full Version : سوال: طرز کار درایو های مجازی!



mehdy.programmer
سه شنبه 03 مرداد 1391, 02:14 صبح
با سلام خدمت همه ی دوستان و اساتید محترم !
می خواستم بدونم این برنامه هایی که درایو مجازی درست می کنن و میشه مثل یه درایو عادی ازشون استفاده کرد، چه جوری کار می کنن؟
من هر چی تو services و process گشتم چیزی نبود که به بهش مربوط باشه ولی اون هنوز کار می کرد!
1. می خوام بدونم من اشتباه کردم یا نه(چطوری این کارو می کنن؟) ؟
2.چه طور اون درایو هارو می سازن؟
3.کلا چطوری کار میکنن(یه مختصری راجع به الگوریتمشون و هرچیزی که به نظرتون مفید می آد) ؟

با تشکر

ali_habibi1384
سه شنبه 03 مرداد 1391, 09:09 صبح
به اين لينك (http://create.fanhow.com/create-virtual-drive-c%23) يه سر بزن اگر انگيليسيت خوب باشه يه چيزايي نوشته

mehdy.programmer
سه شنبه 03 مرداد 1391, 16:13 عصر
دستت درد نکنه ! خوب بود یه چیزایی یاد گرفتم ولی اون چیزی نبود که من دنبالش می گشتم! ولی بازم دستت درد نکنه!

fjm11100
سه شنبه 03 مرداد 1391, 16:32 عصر
درایور نویسی است و با c# نمیشه اگر توی فولدر این برنامه ها هم بری فایلهای *.sys را که بیشتر برای درایورها استفاده میشه می بینی. اما UltraIso یک فایل اجرایی command line داره که میتونی توی برنامه ات استفاده کنی. توی فولدر drivers برنامه را ببین.

Y_Safaiee
سه شنبه 03 مرداد 1391, 16:52 عصر
با سلام خدمت شما دوست عزیزم

به این لینک سر بزن یه مثال زیبام با سی شارپ داره برات .



http://stackoverflow.com/questions/3753758/creating-virtual-hard-drive


موفق باشی
بایت بایت

fjm11100
چهارشنبه 04 مرداد 1391, 10:17 صبح
البته این چیزی که دوستمون میگن کمی با این لینک فرق داره این لینک یک مسیر را مپ میکنه. ولی چیز جالبی بود مرسی

Esmail Solhkhah
چهارشنبه 04 مرداد 1391, 23:15 عصر
این تیپ کارها نیاز به درایور نویسی دارن،درایور رو هم نمیشه با زبانهای دات نت بیس نوشت باید از زبانهای Native استفاده کنید منجمله Assembly ، C ، Delphi

چرا چون برنامه های نوشته شده با پلتفرم دات نت بعد کامپایل بصورت کد MSIL هستند و زمان اجرا تازه بصورت کد محلی Native کامپایل بعد اجرا میشن ، در زمان لود Kernel هنوز

سرویسهای لازمه جهت کامپایل MSIL به Native لود نشدن و سیستم عامل قادر به اجرای این کدها نخواهد بود.سیستم عامل تو فاز لود خودش درایورها و سرویسهای سطح پایین

سیستم رو لود میکنه درست مثل حالتی که برنامه رو گذاشتید تو استارت آپ ویندوز یا کلیدهای Run ریجستری در حالی که استارت آپ تو فاز پایانی لود سیستم عامل هست و

زمانی برنامه های موجود در اون اجرا میشن که GUI ویندوز لود شده و کاربر به سیستم لاگین کرده در حالی که سرویسهای سطح پایین و درایورها قبل از تمام این داستانها لود میشن

، در کل کارهایی که نیاز به دسترسی مستقیم به سخت افزار دارن معمولا با درایور نویسی انجام میشن ،چرا چون ساختار سیستم عامل های NT اجازه دسترسی مستقیم به

سخت افزار رو نمیده (در لایه User) پس مجبورید در لایه Kernel این کارهای سیستمی رو انجام بدید، هرچند تو لایه User هم میشه درایور نویسی کرد .

http://en.wikipedia.org/wiki/Windows_User_Mode_Driver_Framework

برای درایور نویسی با زبانهای C یا اسمبلی نیاز به WDK (http://msdn.microsoft.com/en-us/library/windows/hardware/gg487428.aspx) دارید، اصل کاری رو گفتم کاری به کیتهای شرکتهای دیگه ندارم.

برای دلفی هم ابزارهای دیگه ای موجوده منجمله WinDriver (http://www.jungo.com/st/windriver_usb_pci_driver_development_software.html )

در مورد درایور نویسی یه مختصر توضیحاتی در این تاپیک دادم

http://barnamenevis.org/showthread.php?325728-%D9%86%D8%AD%D9%88%D9%87-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%BE%D8%B1%DB%8C%D9%86%D8%AA%D8%B1-%D9%85%D8%AC%D8%A7%D8%B2%DB%8C&p=1433562&viewfull=1#post1433562

دوتا لینک زیر بررسی کنید

http://www.codeproject.com/Articles/58950/How-to-develop-a-virtual-disk-for-Windows
http://www.ltr-data.se/opencode.html/#ImDisk

موفق باشید.