共用方式為


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 的結構類型。 目前,這個成員一律 sizeofPS_CREATE_NOTIFY_INFO)。

Flags

保留。 請改用 FileOpenNameAvailable 成員。

FileOpenNameAvailable

布爾值,指定 ImageFileName 成員是否包含用來開啟進程可執行檔的確切檔名。

IsSubsystemProcess

布爾值,指出進程子系統的類型是 Win32 以外的子系統。

IsSubsystemProcess 只有在驅動程式透過 PsSetCreateProcessNotifyRoutineEx2 註冊時,才會針對 Win32 以外的子系統進程填入。此類型允許來自子系統進程的通知。 當 IsSubsystemProcess 設定時,FileObjectImageFileName,而 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)

另請參閱

CreateProcessNotifyEx

PsSetCreateProcessNotifyRoutineEx

UNICODE_STRING