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


структура 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 заполняется только для процессов подсистемы, отличных от Win32, если драйвер зарегистрирован через PsSetCreateProcessNotifyRoutineEx2 с типом, который позволяет уведомления от процессов подсистемы. Если задано значение IsSubsystemProcess , значение FileObject, ImageFileName и CommandLine может иметь значение NULL. При необходимости драйверы должны использовать ProcessSubsystemInformation для запроса типа подсистемы.

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

Reserved

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

ParentProcessId

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

CreatingThreadId

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

FileObject

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

Если 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)

См. также раздел

CreateProcessNotifyEx

PsSetCreateProcessNotifyRoutineEx

UNICODE_STRING