Freigeben über


PS_CREATE_NOTIFY_INFO-Struktur (ntddk.h)

Die PS_CREATE_NOTIFY_INFO-Struktur stellt Informationen zu einem neu erstellten Prozess bereit.

Syntax

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;

Member

Size

Die Größe (in Bytes) dieser Struktur. Das Betriebssystem verwendet diese Größe, um den Strukturtyp anzugeben, den es an CreateProcessNotifyEx übergibt. Derzeit ist dieser Member immer sizeof(PS_CREATE_NOTIFY_INFO).

Flags

Reserviert. Verwenden Sie stattdessen das FileOpenNameAvailable-Element .

FileOpenNameAvailable

Ein boolescher Wert, der angibt, ob das ImageFileName-Element den genauen Dateinamen enthält, der zum Öffnen der ausführbaren Prozessdatei verwendet wird.

IsSubsystemProcess

Ein boolescher Wert, der angibt, dass der Typ des Prozesssubsystems ein anderes Subsystem als Win32 ist.

IsSubsystemProcess wird nur für andere Subsystemprozesse als Win32 aufgefüllt, wenn ein Treiber über PsSetCreateProcessNotifyRoutineEx2 mit einem Typ registriert wurde, der Benachrichtigungen von Subsystemprozessen zulässt. Wenn IsSubsystemProcess festgelegt ist, sind FileObject, ImageFileName und CommandLine möglicherweise NULL. Treiber sollten ProcessSubsystemInformation verwenden, um den Subsystemtyp bei Bedarf abzufragen.

Weitere Informationen finden Sie unter NtQueryInformationProcess.

Reserved

Ist für das System reserviert.

ParentProcessId

Die Prozess-ID des übergeordneten Prozesses für den neuen Prozess. Beachten Sie, dass der übergeordnete Prozess nicht unbedingt derselbe Prozess ist wie der Prozess, der den neuen Prozess erstellt hat. Der neue Prozess kann bestimmte Eigenschaften des übergeordneten Prozesses erben, z. B. Handles oder freigegebener Arbeitsspeicher. (Die Prozess-ID des Prozesserstellers wird durch CreatingThreadId angegeben.>UniqueProcess.)

CreatingThreadId

Die Prozess-ID und thread-ID des Prozesses und threads, der den neuen Prozess erstellt hat. CreatingThreadId-UniqueProcess> enthält die Prozess-ID, undCreatingThreadId-UniqueThread> enthält die Thread-ID.

FileObject

Ein Zeiger auf das Dateiobjekt für die ausführbare Prozessdatei.

Wenn IsSubsystemProcess TRUE ist, kann dieser Wert NULL sein.

ImageFileName

Ein Zeiger auf eine UNICODE_STRING Zeichenfolge, die den Dateinamen der ausführbaren Datei enthält. Wenn das FileOpenNameAvailable-ElementTRUE ist, gibt die Zeichenfolge den genauen Dateinamen an, der zum Öffnen der ausführbaren Datei verwendet wird. Wenn FileOpenNameAvailableauf FALSE festgelegt ist, gibt das Betriebssystem möglicherweise nur einen Teilnamen an.

Wenn IsSubsystemProcess TRUE ist, kann dieser Wert NULL sein.

CommandLine

Ein Zeiger auf eine UNICODE_STRING Zeichenfolge, die den Befehl enthält, der zum Ausführen des Prozesses verwendet wird. Wenn der Befehl nicht verfügbar ist, ist CommandLineNULL.

Wenn IsSubsystemProcess TRUE ist, kann dieser Wert NULL sein.

CreationStatus

Der NTSTATUS-Wert, der für den Prozesserstellungsvorgang zurückgegeben werden soll. Treiber können diesen Wert in einen Fehlercode ändern, um zu verhindern, dass der Prozess erstellt wird.

Anforderungen

Anforderung Wert
Header ntddk.h (include Ntddk.h)

Weitere Informationen

CreateProcessNotifyEx

PsSetCreateProcessNotifyRoutineEx

UNICODE_STRING