共用方式為


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 時, FileObjectImageFileNameCommandLine 可能是 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)

另請參閱

CreateProcessNotifyEx

PsSetCreateProcessNotifyRoutineEx

UNICODE_STRING