структура 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) |