2012-11-14 99 views
1

我想知道IOCTL的工作原理。 我知道的基本知識:IOCTL的工作原理?

的DeviceIoControl() - > KERNEL32.DLL - > ntdll.dll中 - >它從用戶模式獲得的那一刻到內核模式 - > I/O管理器 - > IRP

問題IOCTL如何獲得表單用戶模式到內核模式?它是中斷門,電話門還是別的什麼?

如果你知道任何文章/書解釋IOCTL的詳細信息(除了Windows內部更多),請張貼鏈接。

回答

0

如果你看DeviceIoControlKernel32.dll中的實現,你會看到它從ntdll.dll看到調用NtDeviceIoControlFile。這反過來做了一個syscall,它從用戶模式轉換到內核模式。

+0

更具體地講,它加載的系統調用和返回地址到堆棧中,然後調用'kifastsystemcall'然後加載一個祕密號碼(給內核模式訪問),使'syscall',然後'用於kifastsystemcallret'與返回地址參數。因此想要進入這個低級別的用戶需要使用'kifastsystemcall'。 – 2013-01-24 18:04:51