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

Flags

保留。 请改用 FileOpenNameAvailable 成员。

FileOpenNameAvailable

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

IsSubsystemProcess

指示进程子系统的类型不是 Win32 的子系统的布尔值。

IsSubsystemProcess 仅在驱动程序通过 PsSetCreateProcessNotifyRoutineEx2 注册了允许来自子系统进程的通知的类型时,才为 Win32 以外的子系统进程填充。 设置 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 值。 驱动程序可以将此值更改为错误代码,以防止创建进程。

要求

要求 价值
标头 ntddk.h (包括 Ntddk.h)

另请参阅

CreateProcessNotifyEx

PsSetCreateProcessNotifyRoutineEx

UNICODE_STRING