PS_CREATE_NOTIFY_INFO 구조체(ntddk.h)

PS_CREATE_NOTIFY_INFO 구조체는 새로 만든 프로세스에 대한 정보를 제공합니다.

구문

typedef struct _PS_CREATE_NOTIFY_INFO {
  SIZE_T              Size;
  union {
    ULONG Flags;
    struct {
      ULONG FileOpenNameAvailable : 1;
      ULONG IsSubsystemProcess : 1;
      ULONG Reserved : 30;
    };
  };
  HANDLE              ParentProcessId;
  CLIENT_ID           CreatingThreadId;
  struct _FILE_OBJECT *FileObject;
  PCUNICODE_STRING    ImageFileName;
  PCUNICODE_STRING    CommandLine;
  NTSTATUS            CreationStatus;
} PS_CREATE_NOTIFY_INFO, *PPS_CREATE_NOTIFY_INFO;

멤버

Size

이 구조체의 크기(바이트)입니다. 운영 체제는 이 크기를 사용하여 CreateProcessNotifyEx에 전달하는 구조체의 유형을 나타냅니다. 현재 이 멤버는 항상 sizeof(PS_CREATE_NOTIFY_INFO)입니다.

Flags

예약되어 있습니다. 대신 FileOpenNameAvailable 멤버를 사용합니다.

FileOpenNameAvailable

ImageFileName 멤버에 프로세스 실행 파일을 여는 데 사용되는 정확한 파일 이름이 포함되어 있는지 여부를 지정하는 부울 값입니다.

IsSubsystemProcess

프로세스 하위 시스템의 형식을 나타내는 부울 값은 Win32 이외의 하위 시스템입니다.

드라이버가 하위 시스템 프로세스의 알림을 허용하는 형식으로 PsSetCreateProcessNotifyRoutineEx2를 통해 등록한 경우 IsSubsystemProcess는 Win32 이외의 하위 시스템 프로세스에 대해서만 채워집니다. IsSubsystemProcess가 설정되면 FileObject, ImageFileNameCommandLine이 NULL일 수 있습니다. 드라이버는 필요한 경우 ProcessSubsystemInformation 을 사용하여 하위 시스템 형식을 쿼리해야 합니다.

자세한 내용은 NtQueryInformationProcess를 참조하세요.

Reserved

시스템에서 사용하도록 예약되었습니다.

ParentProcessId

새 프로세스에 대한 부모 프로세스의 프로세스 ID입니다. 부모 프로세스가 반드시 새 프로세스를 만든 프로세스와 동일한 프로세스는 아닙니다. 새 프로세스는 핸들 또는 공유 메모리와 같은 부모 프로세스의 특정 속성을 상속할 수 있습니다. (프로세스 작성자의 프로세스 ID는 CreateThreadId->UniqueProcess.)

CreatingThreadId

새 프로세스를 만든 프로세스 및 스레드의 프로세스 ID 및 스레드 ID입니다. CreatingThreadId-UniqueProcess>에는 프로세스 ID가 포함되고CreatingThreadId-UniqueThread>에는 스레드 ID가 포함됩니다.

FileObject

프로세스 실행 파일의 파일 개체에 대한 포인터입니다.

IsSubsystemProcess가 TRUE이면 이 값은 NULL일 수 있습니다.

ImageFileName

실행 파일의 파일 이름을 포함하는 UNICODE_STRING 문자열에 대한 포인터입니다. FileOpenNameAvailable 멤버가 TRUE이면 문자열은 실행 파일을 여는 데 사용되는 정확한 파일 이름을 지정합니다. FileOpenNameAvailableFALSE이면 운영 체제에서 부분 이름만 제공할 수 있습니다.

IsSubsystemProcess가 TRUE이면 이 값은 NULL일 수 있습니다.

CommandLine

프로세스를 실행하는 데 사용되는 명령을 포함하는 UNICODE_STRING 문자열에 대한 포인터입니다. 명령을 사용할 수 없는 경우 CommandLineNULL입니다.

IsSubsystemProcess가 TRUE이면 이 값은 NULL일 수 있습니다.

CreationStatus

프로세스 만들기 작업에 반환할 NTSTATUS 값입니다. 드라이버는 프로세스를 만들지 못하도록 이 값을 오류 코드로 변경할 수 있습니다.

요구 사항

요구 사항
헤더 ntddk.h(Ntddk.h 포함)

추가 정보

CreateProcessNotifyEx

PsSetCreateProcessNotifyRoutineEx

UNICODE_STRING