다음을 통해 공유


SHCREATEPROCESSINFOW 구조체(shellapi.h)

[SHCreateProcessAsUserW 더 이상 Windows XP 이상 버전에서 구현되지 않습니다.]

프로세스를 만드는 데 SHCreateProcessAsUserW 필요한 정보를 포함합니다.

통사론

typedef struct _SHCREATEPROCESSINFOW {
  DWORD                 cbSize;
  ULONG                 fMask;
  HWND                  hwnd;
  LPCWSTR               pszFile;
  LPCWSTR               pszParameters;
  LPCWSTR               pszCurrentDirectory;
  HANDLE                hUserToken;
  LPSECURITY_ATTRIBUTES lpProcessAttributes;
  LPSECURITY_ATTRIBUTES lpThreadAttributes;
  BOOL                  bInheritHandles;
  DWORD                 dwCreationFlags;
  LPSTARTUPINFOW        lpStartupInfo;
  LPPROCESS_INFORMATION lpProcessInformation;
} SHCREATEPROCESSINFOW, *PSHCREATEPROCESSINFOW;

회원

cbSize

형식: DWORD

이 구조체의 크기(바이트)입니다.

fMask

형식: ULONG

다른 구조체 멤버의 내용과 유효성을 나타내는 플래그 배열입니다. 다음 값의 조합일 수 있습니다.

SEE_MASK_CLASSKEY

파일의 클래스 레지스트리 키를 사용합니다.

SEE_MASK_CLASSNAME

파일의 클래스 이름을 사용합니다.

SEE_MASK_CONNECTNETDRV

공유의 유효성을 검사하고 드라이브 문자에 연결합니다. pszFile 멤버는 네트워크에 있는 파일의 UNC 경로입니다.

SEE_MASK_DOENVSUBST

환경 변수를 확장합니다.

SEE_MASK_FLAG_DDEWAIT

반환하기 전에 DDE 대화가 종료되기를 기다립니다.

SEE_MASK_FLAG_NO_UI

오류가 발생하면 오류 메시지 상자를 표시하지 마세요.

SEE_MASK_HMONITOR

다중 모니터 시스템에서 모니터를 지정할 때 이 플래그를 사용합니다.

SEE_MASK_NOCLOSEPROCESS

애플리케이션이 프로세스를 닫습니다. lpProcessInformation 멤버가 유효한 PROCESS_INFORMATION 포인터이고 SEE_MASK_NOCLOSEPROCESS 설정된 경우 SHCreateProcessAsUserW 반환될 때 프로세스가 열린 상태로 유지됩니다. hProcesshThreadPROCESS_INFORMATION 구조체의 멤버는 각각 프로세스와 스레드 핸들을 보유합니다. 이 플래그는 일반적으로 애플리케이션이 SHCreateProcessAsUserW 사용하여 만든 프로세스가 종료되는 시기를 확인할 수 있도록 설정됩니다. DDE 대화를 통해 실행이 충족되는 경우와 같은 경우에 핸들이 반환되지 않습니다. 호출 애플리케이션은 더 이상 필요하지 않을 때 핸들을 닫습니다. 이 플래그를 설정하지 않으면 lpProcessInformation 유효한 포인터인 경우에도 SHCreateProcessAsUserW가 반환되기 전에 프로세스가 닫힙니다.

SEE_MASK_NO_CONSOLE

부모의 콘솔을 상속하는 대신 새 프로세스에 대한 콘솔을 만듭니다. CreateProcessCREATE_NEW_CONSOLE 플래그를 사용하는 것과 같습니다.

SEE_MASK_UNICODE

유니코드 애플리케이션을 나타냅니다.

hwnd

형식: HWND

부모 창 핸들입니다.

pszFile

형식: LPCWSTR

SHCreateProcessAsUserW가 지정한 작업을 수행할 실행 파일을 지정하는 null로 끝나는 유니코드 문자열에 runasverb대한 포인터입니다. 파일 runasverb 의 클래스에서 지원되어야 합니다.

참고 경로가 파일 이름에 포함되지 않은 경우 현재 디렉터리가 가정됩니다.
 

pszParameters

형식: LPCWSTR

애플리케이션 매개 변수를 포함하는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. 매개 변수는 공백으로 구분해야 합니다.

pszCurrentDirectory

형식: LPCWSTR

현재 디렉터리를 포함하는 null로 끝나는 유니코드 문자열입니다.

hUserToken

형식: HANDLE

특정 사용자를 나타내는 데 사용할 수 있는 액세스 토큰. 단일 사용자에 속하는 것으로 처리되는 폴더에 대해 여러 사용자가 있는 경우 필요합니다. 호출 애플리케이션에는 TOKEN_QUERY 및 TOKEN_IMPERSONATE 포함하여 특정 사용자에 대한 적절한 보안 권한이 있어야 하며 사용자의 레지스트리 하이브는 현재 탑재되어야 합니다. 액세스 제어 문제에 대한 자세한 내용은 Access Control참조하세요.

lpProcessAttributes

형식: LPSECURITY_ATTRIBUTES

새 프로세스에 대한 보안 설명자가 있는 SECURITY_ATTRIBUTES 구조체에 대한 포인터입니다. 또한 자식 프로세스를 상속할 수 있는지 여부를 지정합니다. 이 매개 변수가 NULL설정되면 프로세스에 기본 보안 설명자가 있으며 핸들을 상속할 수 없습니다.

보안 경고: 보안 설명자를 잘못 사용하면 애플리케이션의 보안이 손상됩니다. 자세한 내용은 SECURITY_ATTRIBUTES참조하세요.

lpThreadAttributes

형식: LPSECURITY_ATTRIBUTES

새 스레드에 대한 보안 설명자가 있는 SECURITY_ATTRIBUTES 구조체에 대한 포인터입니다. 또한 자식 프로세스를 상속할 수 있는지 여부를 지정합니다. 이 매개 변수가 NULL설정되면 프로세스에 기본 보안 설명자가 있으며 핸들을 상속할 수 없습니다.

보안 경고: 보안 설명자를 잘못 사용하면 애플리케이션의 보안이 손상됩니다. 자세한 내용은 SECURITY_ATTRIBUTES참조하세요.

bInheritHandles

형식: BOOL

새 프로세스가 호출 프로세스에서 핸들을 상속하는지 여부를 나타내는 표시기입니다. TRUE설정하면 호출 프로세스에서 상속 가능한 각 열린 핸들이 새 프로세스에서 상속됩니다. 상속된 핸들은 원래 핸들과 동일한 값 및 액세스 권한을 갖습니다.

dwCreationFlags

형식: DWORD

프로세스 및 우선 순위 클래스의 생성을 제어하는 플래그입니다. 사용 가능한 플래그 목록은 CreateProcessAsUser참조하세요.

lpStartupInfo

형식: LPSTARTUPINFOW

새 프로세스의 주 창이 표시되는 방식을 지정하는 STARTUPINFO 구조체에 대한 포인터입니다.

lpProcessInformation

형식: LPPROCESS_INFORMATION

새 프로세스에 대한 정보를 수신하는 PROCESS_INFORMATION 구조체에 대한 포인터입니다. 이 멤버를 유효한 구조 포인터로 설정하고 fMask 멤버에서 SEE_MASK_NOCLOSEPROCESS 플래그를 설정하면 함수가 반환될 때 프로세스가 열린 상태로 유지됩니다. PROCESS_INFORMATION 구조체의 hProcesshThread 멤버는 프로세스와 스레드 핸들을 각각 보유합니다. 이 멤버를 NULL설정하면 함수가 반환되기 전에 프로세스가 닫힙니다.

발언

pszParameters큰따옴표를 포함하려면 다음 예제와 같이 각 표시를 따옴표 쌍으로 묶어야 합니다.

sei.lpParameters = "An example: \"\"\"quoted text\"\"\"";

이 경우 애플리케이션은 An, example: 및 "quoted text"세 개의 매개 변수를 받습니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 2000 Professional, Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
헤더 shellapi.h

참고 항목

SHELLEXECUTEINFO