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 は、ドライバーが PsSetCreateProcessNotifyRoutineEx2 を介してサブシステム プロセスからの通知を可能にする型で登録されている場合、Win32 以外のサブシステム プロセスにのみ設定されます。 IsSubsystemProcess が設定されている場合、FileObjectImageFileNameおよび CommandLine は NULL になる場合があります。 ドライバーは 、必要に応じて、ProcessSubsystemInformation を使用してサブシステムの種類を照会する必要があります。

詳細については、「 NtQueryInformationProcess」を参照してください。

Reserved

システムで使用するために予約されています。

ParentProcessId

新しいプロセスの親プロセスのプロセス ID。 親プロセスは、新しいプロセスを作成したプロセスと必ずしも同じプロセスではないことに注意してください。 新しいプロセスは、ハンドルや共有メモリなど、親プロセスの特定のプロパティを継承できます。 (プロセス作成者のプロセス ID は CreatingThreadId によって指定されます。>UniqueProcess.)

CreatingThreadId

新しいプロセスを作成したプロセスとスレッドのプロセス ID とスレッド ID。 CreatingThreadId-UniqueProcess> にはプロセス ID が含まれており、CreatingThreadId-UniqueThread> にはスレッド ID が含まれています。

FileObject

プロセス実行可能ファイルのファイル オブジェクトへのポインター。

IsSubsystemProcess が TRUE の場合、この値は NULL になる可能性があります。

ImageFileName

実行可能ファイルのファイル名を保持する UNICODE_STRING 文字列へのポインター。 FileOpenNameAvailable メンバーが TRUE の場合、文字列は実行可能ファイルを開くために使用される正確なファイル名を指定します。 FileOpenNameAvailableFALSE の場合、オペレーティング システムは部分的な名前のみを提供する可能性があります。

IsSubsystemProcess が TRUE の場合、この値は NULL になる可能性があります。

CommandLine

プロセス の実行 に使用されるコマンドを保持するUNICODE_STRING文字列へのポインター。 コマンドが使用できない場合、 CommandLineNULL です

IsSubsystemProcess が TRUE の場合、この値は NULL になる可能性があります。

CreationStatus

プロセス作成操作で返される NTSTATUS 値。 ドライバーは、この値をエラー コードに変更して、プロセスが作成されないようにすることができます。

要件

要件
Header ntddk.h (Ntddk.h を含む)

こちらもご覧ください

CreateProcessNotifyEx

PsSetCreateProcessNotifyRoutineEx

UNICODE_STRING