Поделиться через


структура 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. В настоящее время этот элемент всегда размер(PS_CREATE_NOTIFY_INFO).

Flags

Скрытный. Вместо этого используйте элемент FileOpenNameAvailable.

FileOpenNameAvailable

Логическое значение, указывающее, содержит ли элемент imageFileName имя файла, используемое для открытия исполняемого файла процесса.

IsSubsystemProcess

Логическое значение, указывающее тип подсистемы процесса, является подсистемой, отличной от Win32.

IsSubsystemProcess заполняется только для процессов подсистемы, отличных от Win32, если драйвер зарегистрировался через PsSetCreateProcessNotifyRoutineEx2 с типом, который позволяет уведомлениям из процессов подсистемы. Если задан IsSubsystemProcess, FileObject, ImageFileNameи CommandLine может иметь значение NULL. Драйверы должны использовать ProcessSubsystemInformation для запроса типа подсистемы при необходимости.

Дополнительные сведения см. в NtQueryInformationProcess.

Reserved

Зарезервировано для использования системы.

ParentProcessId

Идентификатор процесса родительского процесса для нового процесса. Обратите внимание, что родительский процесс не обязательно совпадает с процессом, который создал новый процесс. Новый процесс может наследовать определенные свойства родительского процесса, например дескриптор или общую память. (Идентификатор процесса создателя процесса предоставляется CreatingThreadId—>UniqueProcess.)

CreatingThreadId

Идентификатор процесса и идентификатор потока процесса и потока, создавшего новый процесс. CreatingThreadId—>UniqueProcess содержит идентификатор процесса и CreatingThreadId—>UniqueThreadId содержит идентификатор потока.

FileObject

Указатель на объект файла для исполняемого файла процесса.

Если IsSubsystemProcess имеет значение TRUE, это значение может быть значение NULL.

ImageFileName

Указатель на строку UNICODE_STRING, содержащую имя файла исполняемого файла. Если элемент fileOpenNameAvailable true, строка указывает точное имя файла, используемое для открытия исполняемого файла. Если FileOpenNameAvailablefalse, операционная система может предоставить только частичное имя.

Если IsSubsystemProcess имеет значение TRUE, это значение может быть NULL.

CommandLine

Указатель на строку UNICODE_STRING, содержащую команду, используемую для выполнения процесса. Если команда недоступна, CommandLineNULL.

Если IsSubsystemProcess имеет значение TRUE, это значение может быть NULL.

CreationStatus

Значение NTSTATUS, возвращаемое для операции создания процесса. Драйверы могут изменить это значение на код ошибки, чтобы предотвратить создание процесса.

Требования

Требование Ценность
заголовка ntddk.h (include Ntddk.h)

См. также

CreateProcessNotifyEx

PsSetCreateProcessNotifyRoutineEx

UNICODE_STRING