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 后, FileObject、 ImageFileName 和 CommandLine 可能为 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,则字符串指定用于打开可执行文件的确切文件名。 如果 FileOpenNameAvailable 为 FALSE,则操作系统可能仅提供部分名称。
如果 IsSubsystemProcess 为 TRUE,此值可能为 NULL。
CommandLine
指向 UNICODE_STRING 字符串的指针,该字符串包含用于执行进程的命令。 如果该命令不可用, 则 CommandLine 为 NULL。
如果 IsSubsystemProcess 为 TRUE,此值可能为 NULL。
CreationStatus
要为进程创建操作返回的 NTSTATUS 值。 驱动程序可以将此值更改为错误代码,以防止创建进程。
要求
要求 | 值 |
---|---|
Header | ntddk.h (包括 Ntddk.h) |