Что является противоположностью CreateDesktop()? CloseDesktop() похоже только закрывает дескриптор нового рабочего стола, но не удаляет его.
CreateDesktop()
CloseDesktop()
IIRC, рабочие столы подсчитываются по ссылкам, поэтому они уничтожаются, когда их больше никто не использует (а наличие неоткрытого дескриптора для одного включено как «использование»).