當前位置:編程學習大全網 - 熱門推薦 - Windows編程中,Zw、Ke、Nt開頭的函數代表什麽?

Windows編程中,Zw、Ke、Nt開頭的函數代表什麽?

這些都代表著是Windows native(原生)系統服務(system services)例程(routines)。

Ke - kernel的縮寫,代表的是內核模式的API接口。

Nt - Windows NT的縮寫,代表的是Windows 系統服務功能API接口。 大部分以Nt開頭的函數,都映射到了用戶態(User Mode)API接口。比如妳編寫的用戶模式程序,用到了CreateFile這個函數,由於它需要訪問系統內部的數據結構,必須要進入內核模式,這時的程序就要轉入內核模式,相對應的內核模式功能服務接口,正是ntdll.dll中的NtCreateFile,它最終完成來自用戶態程序的函數功能請求。

Zw - 沒有具體的縮寫含義,只是為了避免和其它前綴的重復。它的功能和與之相對應的Nt函數是壹致的(可以說是Nt功能的鏡像)。 不同點在於: 相應的Nt函數,是對系統服務的直接;而Zw需要經過壹系列系統準備動作,比如:系統服務碼入寄存器保存,系統KiSystemService加載,然後才執行具體的服務功能調用。 看著負擔加重了,但好處是,在執行時,系統參數的系列校驗不必再進行了(拜所謂的previous access mode之賜),所以反而輕快了;而Nt系列函數雖然調用時簡潔,但每壹次執行都要參數校驗,因此反而累贅了。這也正是內核態程序(比如驅動程序)多用Zw系統的原因(因為需要和previous mode打交道)。

  • 上一篇:於文華最出名的三首歌
  • 下一篇:好聽獨特的甜品店名字好聽的甜品店名稱英文
  • copyright 2024編程學習大全網