在过程连接到窗口站之后,Win32服务器将一个桌面分配给连接到Win32的线程。在此连接过程中分配的桌面无法通过调用CloseDesktop功能关闭。Win32服务器根据以下规则确定要分配给线程的桌面:
1.如果线程调用了SetThreadDesktop函数,它将连接到指定的桌面。
2.如果线程没有调用SetThreadDesktop,它连接到从父进程继承的桌面。
3.如果线程未调用SetThreadDesktop并且没有继承桌面,则Win32服务器将尝试打开MAXIMUM_ALLOWED访问权限并连接到桌面,如下所示:
a。如果在创建进程时传递给CreateProcess函数的STARTUPINFO结构的lpDesktop成员中指定了桌面名称,则该线程将连接到指定的桌面。
b。否则,线程连接到与进程连接的窗口站的默认桌面。
在此连接过程中分配的桌面无法通过调用CloseDesktop功能关闭。