Función CreateDesktopA (winuser.h)
Crea un nuevo escritorio, lo asocia a la estación de ventana actual del proceso de llamada y lo asigna al subproceso que realiza la llamada. El proceso de llamada debe tener una estación de ventana asociada, ya sea asignada por el sistema en tiempo de creación del proceso o establecida por la función SetProcessWindowStation.
Para especificar el tamaño del montón para el escritorio, use la función CreateDesktopEx.
Sintaxis
HDESK CreateDesktopA(
[in] LPCSTR lpszDesktop,
LPCSTR lpszDevice,
DEVMODEA *pDevmode,
[in] DWORD dwFlags,
[in] ACCESS_MASK dwDesiredAccess,
[in, optional] LPSECURITY_ATTRIBUTES lpsa
);
Parámetros
[in] lpszDesktop
Nombre del escritorio que se va a crear. Los nombres de escritorio no distinguen mayúsculas de minúsculas y pueden no contener caracteres de barra diagonal inversa (\).
lpszDevice
Reservado; debe ser null.
pDevmode
Reservado; debe ser null.
[in] dwFlags
Este parámetro puede ser cero o el siguiente valor.
Valor | Significado |
---|---|
|
Permite que los procesos que se ejecutan en otras cuentas del escritorio establezcan enlaces en este proceso. |
[in] dwDesiredAccess
Acceso al escritorio. Para obtener una lista de valores, consulte Derechos de acceso y seguridad de escritorio.
Este parámetro debe incluir el derecho de acceso DESKTOP_CREATEWINDOW, ya que CreateDesktop usa el identificador para crear una ventana.
[in, optional] lpsa
Puntero a una estructura de SECURITY_ATTRIBUTES que determina si los procesos secundarios pueden heredar el identificador devuelto. Si lpsa es NULL, no se puede heredar el identificador.
El lpSecurityDescriptor miembro de la estructura especifica un descriptor de seguridad para el nuevo escritorio. Si este parámetro es NULL, el escritorio hereda su descriptor de seguridad de la estación de ventana principal.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es un identificador para el escritorio recién creado. Si el escritorio especificado ya existe, la función se realiza correctamente y devuelve un identificador al escritorio existente. Cuando haya terminado de usar el identificador, llame a la función CloseDesktop para cerrarlo.
Si se produce un error en la función, el valor devuelto es NULL. Para obtener información de error extendida, llame a GetLastError.
Observaciones
Si el parámetro dwDesiredAccess
El número de escritorios que se pueden crear está limitado por el tamaño del montón de escritorio del sistema, que es de 48 MB. Los objetos de escritorio usan el montón para almacenar recursos. Puede aumentar el número de escritorios que se pueden crear reduciendo el montón predeterminado reservado para cada escritorio de la estación de ventana interactiva. Este valor se especifica en la subcadena "SharedSection" del siguiente valor del Registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\Windows. Los datos predeterminados de este valor del Registro son los siguientes:
"%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off MaxRequestThreads=16"
Los valores de la subcadena "SharedSection" se describen de la siguiente manera:
- El primer valor "SharedSection" es el tamaño del montón compartido común a todos los escritorios, en kilobytes.
- El segundo valor "SharedSection" es el tamaño del montón de escritorio necesario para cada escritorio que se crea en la estación de ventana interactiva, WinSta0, en kilobytes.
- El tercer valor "SharedSection" es el tamaño del montón de escritorio necesario para cada escritorio que se crea en una estación de ventana no interactiva, en kilobytes.
Nota
El encabezado winuser.h define CreateDesktop como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 2000 Professional [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows 2000 Server [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
winuser.h (incluya Windows.h) |
biblioteca de |
User32.lib |
DLL de |
User32.dll |
conjunto de API de |
ext-ms-win-ntuser-windowstation-l1-1-0 (introducido en Windows 8) |
Consulte también
de escritorios de