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,字串會指定用來開啟可執行檔的確切檔名。 如果 FileOpenNameAvailableFALSE,則作系統可能只提供部分名稱。
如果 IsSubsystemProcess 為 TRUE,則此值可能是 NULL。
CommandLine
保存用來執行進程的命令之 UNICODE_STRING 字串的指標。 如果命令無法使用,CommandLineNULL。
如果 IsSubsystemProcess 為 TRUE,則此值可能是 NULL。
CreationStatus
要針對進程建立作業傳回的NTSTATUS值。 驅動程式可以將此值變更為錯誤碼,以防止建立進程。
要求
要求 | 價值 |
---|---|
標頭 | ntddk.h (包括 Ntddk.h) |