Поделиться через


Функция CreateWindowStationA (winuser.h)

Создает объект оконной станции, связывает его с вызывающим процессом и назначает его текущему сеансу.

Синтаксис

HWINSTA CreateWindowStationA(
  [in, optional] LPCSTR                lpwinsta,
                 DWORD                 dwFlags,
  [in]           ACCESS_MASK           dwDesiredAccess,
  [in, optional] LPSECURITY_ATTRIBUTES lpsa
);

Параметры

[in, optional] lpwinsta

Имя создаваемой оконной станции. Имена оконных станций не учитывают регистр и не могут содержать символы обратной косой черты (\). Только члены группы "Администраторы" могут указывать имя. Если lpwinsta имеет значение NULL или пустую строку, система формирует имя станции окна, используя идентификатор сеанса входа для вызывающего процесса. Чтобы получить это имя, вызовите функцию GetUserObjectInformation .

dwFlags

Если этот параметр CWF_CREATE_ONLY и оконная станция уже существует, вызов завершается ошибкой. Если этот флаг не указан и оконная станция уже существует, функция выполняется успешно и возвращает новый дескриптор существующей оконной станции.

Windows XP/2000: Этот параметр зарезервирован и должен иметь нулевое значение.

[in] dwDesiredAccess

Тип доступа возвращенного дескриптора к оконной станции. Кроме того, можно указать любое из стандартных прав доступа, например READ_CONTROL или WRITE_DAC, а также сочетание прав доступа для конкретной оконной станции. Дополнительные сведения см. в разделе Права на доступ и безопасность станции Windows.

[in, optional] lpsa

Указатель на структуру SECURITY_ATTRIBUTES , которая определяет, может ли возвращаемый дескриптор наследоваться дочерними процессами. Если lpsa имеет значение NULL, дескриптор не может быть унаследован.

Элемент lpSecurityDescriptor структуры задает дескриптор безопасности для новой станции окна. Если lpsa имеет значение NULL, оконная станция (и все рабочие столы, созданные в окне) получает дескриптор безопасности, который предоставляет доступ GENERIC_ALL всем пользователям.

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение будет дескриптором созданной оконной станции. Если указанная оконная станция уже существует, функция выполняется успешно и возвращает дескриптор существующей оконной станции.

Если функция завершается сбоем, возвращается значение NULL. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

После завершения работы с дескриптором необходимо вызвать CloseWindowStation , чтобы освободить дескриптор.

Примечание

Заголовок winuser.h определяет CreateWindowStation в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll
Набор API ext-ms-win-ntuser-windowstation-l1-1-0 (появилось в Windows 8)

См. также раздел

CloseWindowStation

GetUserObjectInformation

OpenWindowStation

Функции Оконной станции и рабочего стола

Оконные станции