Функция CreateJobObject


Функция CreateJobObject создает или открывает объект задания.

Синтаксис
HANDLE CreateJobObject(
  LPSECURITY_ATTRIBUTES lpJobAttributes,  // SD
  LPCTSTR lpName                          // имя задания
); 

Параметры

lpJobAttributes

[in] Указатель на структуру SECURITY_ATTRIBUTES, которая устанавливает дескриптор безопасности для объекта задания и обуславливает могут ли дочерние процессы наследовать возвращенный дескриптор. Если lpJobAttributes имеет значение ПУСТО (NULL), объект задания получает заданный по умолчанию дескриптор безопасности, и он не может быть унаследован. Списки контроля доступа (ACL) в заданном по умолчанию дескрипторе безопасности для объекта задания происходят от первичного маркера или маркера заимствования прав создателя.

lpName

[in] Указатель на символьную строку с нулем в конце, определяющую имя задания. Имя ограничивается символами MAX_PATH. Имя сравнивается с учетом регистра.

Если lpName имеет значение ПУСТО (NULL), задание создано без имени(названия).

Если lpName соответствует имени существующего события, семафора, мьютекса, ждущего таймера или отображаемого в памяти объекта, функция завершается ошибкой, а функция GetLastError возвращает значение ERROR_INVALID_HANDLE. Это происходит потому, что эти объекты совместно используют одно и то же пространство имен.

Обслуживание терминала: Имя может иметь префикс "Global\" или "Local\", чтобы явно создать объект в пространстве имен сеанса или глобальной переменной. Остаточный член от имени может содержать любой символ кроме символа наклонной черты влево (\). Для получения дополнительной информации, см. Пространство имен объекта ядра.

Windows 2000/XP: Если Обслуживание терминала не выполняется, префиксы "Global\" и "Local\",, игнорируются. Остаточный член от имени может содержать любой символ кроме символа наклонной черты влево.

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

Если функция завершается успешно, возвращаемое значение - дескриптор объекта задания. Дескриптор имеет право доступа JOB_OBJECT_ALL_ACCESS. Если объект существовал перед вызовом функции, функция возвращает дескриптор существующего объекта задания, а GetLastError возвращает значение ERROR_ALREADY_EXISTS.

Если функция завершается с ошибкой, возвращаемое значение ПУСТО (NULL). Чтобы получить дополнительные данные об ошибках, вызовите GetLastError.

Замечания

Когда задание создано, его поясняющая информация инициализируется нулями, все ограничения неактивны, и нет никаких связанных процессов. Чтобы связать процесс с заданием, используйте функцию AssignProcessToJobObject. Чтобы установить ограничения для задания, используйте функцию SetInformationJobObject. Чтобы сделать запрос поясняющей информации, используйте функцию QueryInformationJobObject.

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

Чтобы компилировать приложение, которое использует эту функцию, определите макрокоманду _WIN32_WINNT как 0x0500 или позже. Для получения дополнительной информации, см. статью Использование заголовков SDK.

Смотри также

Общий обзор Процессы и потоки, Функции, используемые процессами и потоками, AssignProcessToJobObject, CloseHandle, QueryInformationJobObject, SECURITY_ATTRIBUTES, SetInformationJobObjec

Размещение и совместимость CreateJobObject

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Нет

Windows Me

Нет

Windows 98

Нет

Windows 95

Нет

Используемая библиотека

Kernel32.lib

Заголовочный файл

 

- объявлено в

Winbase.h

- включено в

Windows.h

Unicode

Реализуется как версии Unicode и ANSI.

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz