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 的结构类型。 目前,此成员的大小始终 (PS_CREATE_NOTIFY_INFO) 。

Flags

保留。 请改用 FileOpenNameAvailable 成员。

FileOpenNameAvailable

一个布尔值,指定 ImageFileName 成员是否包含用于打开进程可执行文件的确切文件名。

IsSubsystemProcess

一个布尔值,指示进程子系统的类型是 Win32 以外的子系统。

仅当驱动程序使用允许从子系统进程发出通知的类型通过 PsSetCreateProcessNotifyRoutineEx2 注册时,才会为 Win32 以外的子系统进程填充 IsSubsystemProcess。 设置 IsSubsystemProcess 后, FileObjectImageFileNameCommandLine 可能为 NULL。 如果需要,驱动程序应使用 ProcessSubsystemInformation 查询子系统类型。

有关详细信息,请参阅 NtQueryInformationProcess

Reserved

预留给系统使用。

ParentProcessId

新进程的父进程的进程 ID。 请注意,父进程不一定与创建新进程的进程相同。 新进程可以继承父进程的某些属性,例如句柄或共享内存。 (进程创建者的进程 ID 由 CreatingThreadId-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 值。 驱动程序可以将此值更改为错误代码,以防止创建进程。

要求

要求
Header ntddk.h (包括 Ntddk.h)

另请参阅

CreateProcessNotifyEx

PsSetCreateProcessNotifyRoutineEx

UNICODE_STRING