Senza categoria

createprocess 예제

응용 프로그램이 환경 블록을 제공하는 경우 시스템 드라이브의 현재 디렉터리 정보가 새 프로세스로 자동으로 전파되지 않습니다. 예를 들어 =C라는 환경 변수가 있는데, 그 값이 드라이브 C의 현재 디렉토리입니다. 응용 프로그램은 현재 디렉터리 정보를 새 프로세스로 수동으로 전달해야 합니다. 이렇게 하려면 응용 프로그램에서 이러한 환경 변수 문자열을 명시적으로 만들고 사전순으로 정렬해야 합니다(시스템에서 정렬된 환경을 사용하기 때문에). 일반적으로 환경 블록 정렬 순서로 인해 환경 블록의 맨 앞에 이동합니다. . 이 매개 변수가 TRUE이면 호출 프로세스의 상속 가능한 각 핸들이 새 프로세스에 의해 상속됩니다. 매개 변수가 FALSE이면 핸들이 상속되지 않습니다. 상속된 핸들은 원래 핸들과 동일한 값 및 액세스 권한을 갖습니다. 이 함수는 명령줄에서 처럼 다른 프로그램을 실행 하 고 완료 될 때까지 기다렸다가 프로세스의 종료 코드를 반환 하는 짧은 함수입니다. 상위 프로세스는 프로세스를 만드는 동안 자식 프로세스의 환경 변수를 직접 변경할 수 있습니다.

프로세스가 다른 프로세스의 환경 설정을 직접 변경할 수 있는 유일한 상황입니다. 자세한 내용은 환경 변수 변경을 참조하십시오. 운영 체제가 프로세스에 제공하는 명령줄에서 실행 가능한 이름의 이름은 호출 프로세스가 CreateProcess 함수에 제공하는 명령줄의 이름과 반드시 동일하지는 않습니다. 운영 체제는 정규화된 경로 없이 제공되는 실행 가능한 이름에 대한 정규화된 경로를 준비할 수 있습니다. 터미널 서비스: 세션 간에 핸들을 상속할 수 없습니다. 또한 이 매개 변수가 TRUE인 경우 호출자와 동일한 세션에서 프로세스를 만들어야 합니다. CreateProcess가 성공하면 새 프로세스 및 해당 기본 스레드에 대한 핸들 및 식별자가 포함된 PROCESS_INFORMATION 구조를 반환합니다. 스레드 및 프로세스 핸들은 전체 액세스 권한으로 만들어지지만 보안 설명자지정시 액세스를 제한할 수 있습니다. 이러한 핸들이 더 이상 필요하지 않으면 CloseHandle 함수를 사용하여 핸들을 닫습니다.

이 문서는 관련 소스 코드 및 파일과 함께 코드 프로젝트 오픈 라이센스(CPOL) 이 함수의 ANSI 버전에서 라이선스가 부여되며 프로세스의 환경 블록의 총 크기가 32,767자를 초과하는 경우 CreateProcessA가 실패합니다. CreateProcessAsUser 또는 CreateProcessWithLogononW 함수를 사용하여 프로세스를 만들 수도 있습니다. 이렇게 하면 프로세스가 실행될 사용자 계정의 보안 컨텍스트를 지정할 수 있습니다. 종료 코드가 0으로 표시되면 일반적으로 성공을 나타내고 다른 반환 값은 실패를 나타내지만 이는 규칙이 아닙니다. 관심 있는 명령을 테스트하여 사용할 종료 코드를 확인합니다. 구조의 lpSecurity 설명자 멤버는 새 프로세스에 대한 보안 설명자입니다. lpProcessAttributes가 NULL이거나 lpSecurityDescriptor가 NULL인 경우 프로세스는 기본 보안 설명자가 됩니다. 프로세스에 대한 기본 보안 설명자의 ACL은 작성자의 기본 토큰에서 가져옵니다. Windows XP: 프로세스에 대한 기본 보안 설명자의 ACL은 작성자의 기본 또는 가장 토큰에서 가져옵니다.

이 동작은 SP2 및 Windows Server 2003을 사용 하 고 Windows XP와 함께 변경 되었습니다. 호출 프로세스가 다른 사용자를 가장하는 경우 새 프로세스는 가장 토큰이 아닌 호출 프로세스에 토큰을 사용합니다. 가장 토큰으로 표시되는 사용자의 보안 컨텍스트에서 새 프로세스를 실행하려면 CreateProcessAsUser 또는 CreateProcessWithLogonW 함수를 사용합니다. CREATE_NO_WINDOW 옵션은 검은색 명령 프롬프트 창이 나타나지 않도록 합니다.

Founder e direttore di "Perdersi a Roma" ha pubblicato libri di prose, poesie e narrativa di viaggio tra cui "Le persone" (Kolibris) e "Letti" (Voland).