Операционные системы. Программирование в операционной среде Windows
76 SW_SHOWNOI^[AL или SWSHOWMINNOACTIVE, но иногда и SWSHOWDEFAULT. После запуска программы из Explorer ее функция (w)WirLiy[am вызывается с SW SHOWNORMAL в параметре nCmdShow. При создании для нее ярлыка можно указать в его свойствах, в каком виде должно появляться ее главное окно. Чтобы получить копию структуры STARTUPINFO, инициализированной родительским процессом, приложение может вызвать: VOID GetStartupInfo(PSTARTUPINFO pStartuplnfo); Анализируя эту структуру, дочерний процесс может изменять свое поведение в зависимости от значений ее элементов. Перед вызовом GetStartupInfo нужно инициализировать элемент сЬ структуры STARTUPINFO: STARTUPINFOA si = { sizeof(si)} ; Getstartuplnfo(&si) ; 7. Параметр ppiProcInfo Параметр ppiProcInfo указывает на структуру PROCESS INFORMATION, которую необходимо предварительно создать, а ее элементы инициализируются самой функцией CreateProcess. Структура PROCESS INFORMATION представляет собой следующее: typedef struct _PROCESS_INFORMATION { HANDLE hProcess; HANDLE hThread; DWORD dwProcessId; DWORD dwThreadId; } PROCESS_INFORMATION; Создание нового процесса влечет за собой создание ОЯ «процесс» и «поток». В момент их создания система присваивает счетчику каждого объекта начальное значение — единицу. Далее функция CreateProcess открывает объекты «процесс» и «поток» и заносит их описатели в элементы hProcess и hThread структуры PROCESSINFORMATION. Когда CreateProcess открывает эти объекты, счетчики каждого из них увеличиваются до двух. Это означает, что, перед тем как система сможет высвободить из памяти объект «процесс», процесс должен быть завершен, т.е. счетчик уменьшен до единицы, а родительский процесс обязан вызвать функцию CloseHandle и тем самым обнулить счетчик. То же самое относится и к объекту «поток»: поток должен быть завершен, а родительский процесс должен закрыть описатель объекта «поток». Необходимо вовремя закрывать описатели дочернего процесса и его первичного потока, иначе, пока не закроется приложение, будет происходить утечка ресурсов. Система высвободит все эти ресурсы после завершения
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy