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 的子系统的布尔值。
IsSubsystemProcess 仅在驱动程序通过 PsSetCreateProcessNotifyRoutineEx2 注册了允许来自子系统进程的通知的类型时,才为 Win32 以外的子系统进程填充。 设置 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,则字符串指定用于打开可执行文件的确切文件名。 如果 FileOpenNameAvailableFALSE,则作系统可能仅提供部分名称。
如果 IsSubsystemProcess 为 TRUE,则此值可能为 NULL。
CommandLine
指向保存用于执行进程的命令的 UNICODE_STRING 字符串的指针。 如果该命令不可用,则 CommandLineNULL。
如果 IsSubsystemProcess 为 TRUE,则此值可能为 NULL。
CreationStatus
要为进程创建作返回的 NTSTATUS 值。 驱动程序可以将此值更改为错误代码,以防止创建进程。
要求
要求 | 价值 |
---|---|
标头 | ntddk.h (包括 Ntddk.h) |