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
新進程的父進程進程標識號。 請注意,父進程不一定與建立新進程的進程相同。 新的進程可以繼承父進程的特定屬性,例如句柄或共用記憶體。 (建立者的進程標識碼是由 CreateThreadId-UniqueProcess>.)
CreatingThreadId
建立新進程之進程和線程的進程標識碼和線程標識碼。 CreateThreadId-UniqueProcess> 包含進程標識符,而CreateThreadId-UniqueThread> 則包含線程標識符。
FileObject
進程可執行檔之檔案物件的指標。
如果 IsSubsystemProcess 為TRUE,此值可能是 NULL。
ImageFileName
保存可執行檔檔名 的UNICODE_STRING 字串指標。 如果 FileOpenNameAvailable 成員為 TRUE,字串會指定用來開啟可執行檔的確切檔名。 如果 FileOpenNameAvailable 為 FALSE,作業系統可能只提供部分名稱。
如果 IsSubsystemProcess 為TRUE,這個值可能是 NULL。
CommandLine
UNICODE_STRING字串的指標,其中包含用來執行進程的命令。 如果命令無法使用, CommandLine 為 NULL。
如果 IsSubsystemProcess 為TRUE,這個值可能是 NULL。
CreationStatus
要針對進程建立作業傳回的NTSTATUS值。 驅動程式可以將此值變更為錯誤碼,以防止建立進程。
規格需求
需求 | 值 |
---|---|
標頭 | ntddk.h (包含 Ntddk.h) |