ТАк немного запутался в процессах, помогите разобраться так ли я все понял: Допустим мы создаем программу, потом компилирулем ее в например в ехе файл. После запуска нашей программы создается процесс нашей программы, который закружает нашь ехе в отведенное ему виртуальное адресное пространство. Далее создается Треад, который служит чем-то вроде конвеером, который выполняет команду за командой в нашей программе. У процесса есть такая структура как PROCESS_INFORMATION STRUCT 1) Какая информация заносится в эту структуру при создании главного процесса? При создании процесса из нашей проги мы используем функцию CreateProcess, которая проделывает все тоже самое что и для нашей проги(выделяет вирт. адр. пространство, создает свой треад) 2) При создании такого процесса требуется заполнить так же структуру PROCESS_INFORMATION STRUCT, для вновь создаваемог процесса. У Iczilion'a это делалось следующим образом LOCAL startInfo: STARTUPINFO invoke GetStartupInfo,ADDR startInfo по МСДН, про эту функцию написанно,что она извлекает содержимое данной структуры, которая была созданна тогда, когда создавался процесс. 3) Какой процесс тут имеется ввиду, и когда вообще происходит заполнение данной структуры? мож дурацкий вопрос, но что-то немного каша в голове...
сам практический процесс создания я понял, но вот как это происходит на уровне винды не доганяю...именно не понимаю ответа на те вопросы которые я задал..
я нахожусь на этапе изучения английского, поэтому иногда не доконца понимаю смысл предложения..приходиться пользовать словарем..поэтому хотел получить простой ответ на русском, чтобы иметь хотя бы примерный каркас алгоритма создания процесса в винде, который начинается от создания главного процесса когда мы загружаем программу и как дочерний процесс регистрируется относительно главного...особенно не понимаю как заполняется структура STARTUPINFО. в вашем примере в функции CreateProcess в параметре который должен содержать данную структуры вы просто даете ссылку на переменную, которая имеет тип данной структуры. но эта структура имеет вид Код (Text): typedef struct _STARTUPINFO { DWORD cb; LPTSTR lpReserved; LPTSTR lpDesktop; LPTSTR lpTitle; DWORD dwX; DWORD dwY; DWORD dwXSize; DWORD dwYSize; DWORD dwXCountChars; DWORD dwYCountChars; DWORD dwFillAttribute; DWORD dwFlags; WORD wShowWindow; WORD cbReserved2; LPBYTE lpReserved2; HANDLE hStdInput; HANDLE hStdOutput; HANDLE hStdError; } STARTUPINFO, *LPSTARTUPINFO; каким образом заполняется данная структура и где это происходит...Буду благодарен за ответ.
мутно всё как-то, давайте для устранения недоразумений прочитаем руссиновича а потом будем постить, ок?