什麼是WOW ?概念、運作方式
WOW 代表「Win32 上的 Win16」,這是 Microsoft Windows NT 作業系統的元件,可讓 16 位元 Microsoft Windows 應用程式 (例如設計為在 Windows 3.1 和 Windows for Workgroups 3.11 上執行的應用程式) 在 Windows NT 的 32 位元作業系統上正常執行。
Win16範例
WOW 如何運作
如同 MS-DOS 應用程式,16 位 Windows 應用程式 (Win16 應用程式) 也會在 Windows NT 虛擬機器 (NTVDM) 的內容中在 Windows NT 上執行,以模擬這些應用程式執行所需的 16 位環境。
不過,雖然每個 MS-DOS 應用程式都需要自己個別的 NTVDM 才能執行,但 Win16 應用程式會在稱為 WOW 的單一 NTVDM 中執行,對應至系統進程wowexec.exe。雖然裝載 MS-DOS 應用程式的 NTVDM 是單一執行緒,但 WOW 是多執行緒 NTVDM,其中每個 Win16 應用程式都會使用相同的共用位址空間作為個別執行緒執行。
WOW 還模擬了為 Windows 3.1 和 Windows for Workgroups 3.11 編寫的應用程序設計的協作多任務環境。
WOW 一次只允許一個 Win16 應用程式執行,封鎖所有其他 Win16 應用程式的執行緒,直到執行中的應用程式放棄控制為止。如果 Windows NT 核心需要先占 Win16 應用程式 (藉由先占 WOW) ,它一律會以相同的 Win16 應用程式繼續。
WOW 也會處理 16 位元 Windows 應用程式開發介面 (API) 和訊息轉換成其對應的 32 位元 API 和訊息,從而在 Windows NT 平台上啟用 16 位元和 32 位元 Windows 應用程式之間的互通性和資料共用。
NOTE
當第一個Win16應用程式在Windows NT系統上啟動時,WOW會自動啟動。
Tips
Windows NT 也包含在自己的個別 NTVDM 中執行 Win16 應用程式的選項,可讓 Win16 應用程式在 Windows NT 的搶佔式多工環境中做為進程。您可以從 [開始] 功能表開啟 [執行] 方塊,輸入 Win16 可執行檔的路徑,然後選取 [在個別記憶體空間中執行] 複選框,在個別的 NTVDM 中執行 Win16 應用程式。請注意,這樣做可能會對需要使用舊版資料共用機制 (例如動態資料交換 (DDE) ) 彼此共用資料的 Win16 應用程式產生負面影響。