簡體   English   中英

Win32支持的中斷程度如何?

[英]To what extent are interrupts supported in Win32?

Win32支持的中斷在多大程度上超出了處理器定義? 例如,x86機器定義至少18個中斷,包括陷阱,例如斷點陷阱(INT 3)。 其他19-255中斷由英特爾保留為軟件定義中斷。 這些是Windows / WinAPI使用的,還是只是打開並免費供應用程序使用? 如果Windows使用它們,我在哪里可以找到相關文檔? 我查看了MSDN,找不到任何東西。

(順便說一下,我正在進行編譯器,調試器和其他系統級編程,所以請不要在第一時間告訴我你對使用中斷的可行性的看法。)

在Win32應用程序中,通常只有一個中斷, int 2Eh 它用作系統調用入口點。 它類似於DOS中的int 21h 應用程序不使用其余的中斷。

但是,應用程序可以通過結構化異常處理( SEH )/向量異常處理( VEH )處理一些CPU異常(和調試中斷)。 Windows捕獲源自應用程序的CPU異常並將其反映回應用程序,如果可能的話(Windows在模仿CPU異常模型方面並不完美)。

Windows在內部使用設備中斷,不會讓應用程序混亂。 x86 CPU處理內核運行的最特權模式下的中斷。

如今,許多設備中斷與固定中斷向量無關,並且是可配置的,您需要使用PCI之類的各種內容來查詢或更改設置。

如果要直接使用設備和中斷,則需要為Windows編寫內核模式驅動程序。 設備驅動程序工具包( DDK )和Windows Internals等書籍可以幫助您入門。

盡管如此,如果您正在尋找設備XYZ及其中斷編程的細節,您將無法在MSDN或DDK中找到所有內容,因為您需要特定於硬件的信息,這些信息不在Microsoft的控制之內。 內核提供了執行I / O和處理中斷所需的功能,但最終由設備驅動程序以這種或那種方式使用它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM