本文是Vista相關新技術的第一篇文章。
轉載請注明出處。??
最近由于工作原因,需要將系統移植到Vista上面。看了一些文檔,發現Windows Vista對內核做了一些調整。
- 對于Windows NT 5.x 系統來說:當第一個用戶登錄上去之后,系統啟動了Session 0作為第一個用戶的運行的Session。而一些系統程序和一些服務都運行于Session 0.這樣。這樣假如開發人員開發Service的時候選擇與桌面交互,那么服務就能很好的和桌面程序進行交互。
- 對于Vista系統來說,微軟做了一些調整,為了加強服務的安全性,Vista將所有Service和一些系統進程放入了Sesion 0,而對于用戶進程則從Session 1開始。這樣就能很好的避免一些惡意服務對于用戶使用的時候的一些干擾,提供更好的用戶體驗(這是我猜的 ^-^).
-
To work properly in Windows Vista, a service should follow these guidelines:
· ???????? Use a client/server mechanism such as remote procedure call (RPC) or named pipes rather than window messages to communicate with applications.
· ???????? Implement any necessary user interface for the service as follows:
· ???????? Use the WTSSendMessage function to create a simple message box on the user’s desktop. This allows the service to give the user a notification and request a simple response.
· ???????? For more complex UI, use the CreateProcessAsUser function to create a process in the user’s session. The process can then display a user interface in the user’s session. The service should use a client/server mechanism such as RPC or named pipes to obtain any response from the user.
·??????? Query display properties in the user’s session, not in Session?0, because the resolution and color depth that are reported in Session?0 are unlikely to reflect the actual display properties.
· ???????? Explicitly choose either the Local\ or Global\ namespace for any named objects, such as events or mapped memory, that the service makes available. If an object must be accessible to user applications, it must be created in the Global\ namespace to be accessible to other sessions. The following Microsoft Win32? functions all accept named objects: OpenEvent, OpenMutex, OpenSemaphore, OpenWaitableTimer, OpenJobObject, and OpenFileMapping. Care should be taken when using these functions to ensure that the named object is accessible within the current session.
· ???????? Test the driver in Windows Vista to ensure that it runs properly. If that is not possible, test the driver in Windows?XP with FUS enabled and multiple users logged on. If the driver works correctly for second and subsequent logged-on users, it is not likely to be affected by the Session?0 changes in Windows Vista. The only issues that this test does not detect are those related to the absence of the video driver in Session?0 in Windows Vista.
如果你需要下載文檔請到文件下載。



