다음을 통해 공유


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

SEE_MASK_NO_CONSOLE

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

SEE_MASK_UNICODE

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

hwnd

형식: HWND

부모 창 핸들입니다.

pszFile

형식: LPCWSTR

SHCreateProcessAsUserWrunas 동사로 지정된 작업을 수행할 실행 파일을 지정하는 null로 종료된 유니코드 문자열에 대한 포인터입니다. runas 동사는 파일의 클래스에서 지원되어야 합니다.

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

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