0

CreateProcessAsUser() 함수를 호출하면 오류가 반환됩니다.
그리고 오류가 발생한 이유를 확인하기 위해 GetLastError()을 호출하면 0x16f 값이 반환됩니다.GetLastError() 함수가 반환 한 0x16f 오류 값의 의미

오류가 의미하는 바를 찾을 수 없습니다.

+0

오류 코드의 첫 번째 중단 점은 'net helpmsg'입니다. 이 경우'net helpmsg 367'은 "프로세스 생성이 차단되었습니다."를 반환합니다. 불행히도 명확하지 않으며, 인터넷 검색은별로 좋아지지 않습니다. 자녀 과정을 악의적으로 판단하는 바이러스 백신 소프트웨어 때문에 발생할 수 있습니까? 또는 프로세스가 제한되어있는 작업 개체에 할당되어 하위 프로세스를 시작할 수 없습니까? 아니면 Windows Store 샌드 박스와 관련이 있습니까? (오류가 발생한 상황을 설명 할 수 있다면 더 많은 도움을 줄 수 있습니다.) –

+0

일부 강조, 일부 맞춤법 수정 및 문법 개선 (희망 사항). – zx485

답변

1

ERROR_CHILD_PROCESS_BLOCKED가 변환됩니다 NTSTATUS - STATUS_CHILD_PROCESS_BLOCKED (0xC000049D) - 내가 ntoskrnl.exe에서 검색하고이 코드가 NtCreateUserProcess라는 두 곳에서만 참조하는 것을 발견 - SeSubProcessToken에서와 로그 오류에 대한 :

NtCreateUserProcess 
    PspAllocateProcess 
    PspInitializeProcessSecurity 
     SeSubProcessToken 
     if (!SeTokenIsNoChildProcessRestricted(Token)) 
     { 
      status = STATUS_CHILD_PROCESS_BLOCKED; 
     } 


    if (PspAllocateProcess() == STATUS_CHILD_PROCESS_BLOCKED) 
    { 
    EtwTraceDeniedTokenCreation(); 
    } 

그래서 SeTokenIsNoChildProcessRestricted(Token) 반환 FALSEERROR_CHILD_PROCESS_BLOCKEDCreateProcess에서 얻을 수 있습니다.

이 새로운 API입니다 만 1,607 빌드에서 win10

#if (NTDDI_VERSION >= NTDDI_WIN10_RS1) 
NTKERNELAPI 
BOOLEAN 
SeTokenIsNoChildProcessRestricted(
    _In_ PACCESS_TOKEN Token 
    );// return (Token->TokenFlags & 0x80000) != 0; 
#endif 

ntifs.h에 선언하지만 문서화하지의 존재.

프로세스가 호출되지 않으므로 CreateProcessAsUser이 어떻게 든 제한됩니다. 해리 존스턴 (Harry Johnston)의 추측대로 Windows Store 샌드 박스?