Операционные системы. Учебное пособие. Марапулец Ю.В. - 62 стр.

UptoLike

Составители: 

Окончание табл. 2.1
1 2
TlsFree Освобождает индекс TLS
TlsGetValue Возвращает данные, размещенные в TLS с указанным индексом
TlsSetValue Помещает данные в TLS с указанным индексом
WaitForInputIdle Ждет, пока не начнется ввод для указанного процесса
WinExec Выполняет указанное приложение
Подробное описание функций приведено в Win32 Programmer’s Reference. Далее
рассмотрим только некоторые основные функции [4].
Функция CreateProcess() - создает новый процесс и его первичный поток. Новый
процесс исполняет указанный исполняемый файл. Формат функции:
BOOL CreateProcess(LPCTSTR lpApplicationName, // имя исполняемого файла
LPTSTR lpCommandLine, // командная строка
LPSECURITY_ATTRIBUTES lpProcessAttributes, // атрибуты защиты процесса
LPSECURITY_ATTRIBUTES lpThreadAttributes, // атрибуты защиты потока
BOOL bInheritHandles, // флаг наследования описателей
DWORD dwCreationFlags, // флаги создания
LPVOID lpEnvironment, // указатель блока переменных среды
LPCTSTR lpCurrentDirectory, // текущий каталог
LPSTARTUPINFO lpStartupInfo, // блок начальных параметров
LPPROCESS_INFORMATION lpProcessInformation // указатель
// структуры, описывающей порожденный процесс
);
Функция возвращает TRUE в случае успеха и FALSE - в случае неудачи.
Параметры:
lpApplicationName - указатель на строку, содержащую имя исполняемой программы.
Имя может быть полное. Если оно не полное, то поиск файла производится в теку-
щем каталоге. Параметру может быть присвоено значение NULL. В этом случае в
качестве имени файла выступает первая выделенная пробелами лексема из строки
lpCommandLine;
lpCommandLine - указатель командной строки. Если параметр lpApplicationName имеет
значение NULL, то имя исполняемого файла выделяется из lpCommandLine, а по-
иск исполняемого файла производится в соответствии с правилами, действующими
в системе;
lpProcessAttributes - указатель на структуру, описывающую параметры защиты процесса.
Если параметру присвоено значение NULL, то устанавливаются атрибутыпо
умолчанию”;
lpThreadAttributes- указатель на структуру, описывающую параметры защиты первично-
го потока. Если параметру присвоено значение NULL, то устанавливаются атрибу-
тыпо умолчанию”;
bInheritHandles - определяет, будет ли порожденный процесс наследовать описатели
(handles) объектов родительского процесса. Например, если родительский процесс
AB, то он получил описатель процесса B и может им манипулировать. Если теперь
он порождает процесс C с параметром bInheritHandles равным TRUE, то и процесс
C сможет работать с описателем процесса B;
dwCreationFlags - определяет некоторые дополнительные условия создания процесса и
его класс приоритета;
lpEnvironment- указатель на блок переменных среды порожденного процесса. Если этот
параметр равен NULL, то порожденный процесс наследует среду родителя. Иначе
64
                                                                Окончание табл. 2.1
        1                                         2
TlsFree            Освобождает индекс TLS
TlsGetValue        Возвращает данные, размещенные в TLS с указанным индексом
TlsSetValue        Помещает данные в TLS с указанным индексом
WaitForInputIdle   Ждет, пока не начнется ввод для указанного процесса
WinExec            Выполняет указанное приложение
     Подробное описание функций приведено в Win32 Programmer’s Reference. Далее
рассмотрим только некоторые основные функции [4].
     Функция CreateProcess() - создает новый процесс и его первичный поток. Новый
процесс исполняет указанный исполняемый файл. Формат функции:

BOOL CreateProcess(LPCTSTR lpApplicationName,         // имя исполняемого файла
                   LPTSTR lpCommandLine,             // командная строка
     LPSECURITY_ATTRIBUTES lpProcessAttributes, // атрибуты защиты процесса
     LPSECURITY_ATTRIBUTES lpThreadAttributes, // атрибуты защиты потока
                   BOOL bInheritHandles, // флаг наследования описателей
                   DWORD dwCreationFlags, // флаги создания
                   LPVOID lpEnvironment, // указатель блока переменных среды
                   LPCTSTR lpCurrentDirectory, // текущий каталог
                   LPSTARTUPINFO lpStartupInfo, // блок начальных параметров
                   LPPROCESS_INFORMATION lpProcessInformation // указатель
                               // структуры, описывающей порожденный процесс
);

     Функция возвращает TRUE в случае успеха и FALSE - в случае неудачи.
Параметры:
lpApplicationName - указатель на строку, содержащую имя исполняемой программы.
     Имя может быть полное. Если оно не полное, то поиск файла производится в теку-
     щем каталоге. Параметру может быть присвоено значение NULL. В этом случае в
     качестве имени файла выступает первая выделенная пробелами лексема из строки
     lpCommandLine;
lpCommandLine - указатель командной строки. Если параметр lpApplicationName имеет
     значение NULL, то имя исполняемого файла выделяется из lpCommandLine, а по-
     иск исполняемого файла производится в соответствии с правилами, действующими
     в системе;
lpProcessAttributes - указатель на структуру, описывающую параметры защиты процесса.
     Если параметру присвоено значение NULL, то устанавливаются атрибуты “по
     умолчанию”;
lpThreadAttributes- указатель на структуру, описывающую параметры защиты первично-
     го потока. Если параметру присвоено значение NULL, то устанавливаются атрибу-
     ты “по умолчанию”;
bInheritHandles - определяет, будет ли порожденный процесс наследовать описатели
     (handles) объектов родительского процесса. Например, если родительский процесс
     AB, то он получил описатель процесса B и может им манипулировать. Если теперь
     он порождает процесс C с параметром bInheritHandles равным TRUE, то и процесс
     C сможет работать с описателем процесса B;
dwCreationFlags - определяет некоторые дополнительные условия создания процесса и
     его класс приоритета;
lpEnvironment- указатель на блок переменных среды порожденного процесса. Если этот
     параметр равен NULL, то порожденный процесс наследует среду родителя. Иначе

                                        64