PsSetCreateProcessNotifyRoutineEx2 함수(ntddk.h)

PsSetCreateProcessNotifyRoutineEx2 루틴은 프로세스를 만들거나 삭제할 때 호출자에게 알릴 콜백 루틴을 등록하거나 제거합니다.

구문

NTSTATUS PsSetCreateProcessNotifyRoutineEx2(
  [in] PSCREATEPROCESSNOTIFYTYPE NotifyType,
  [in] PVOID                     NotifyInformation,
  [in] BOOLEAN                   Remove
);

매개 변수

[in] NotifyType

프로세스 알림의 유형을 나타내는 PSCREATEPROCESSNOTIFYTYPE 형식 값입니다.

[in] NotifyInformation

지정된 유형의 프로세스 알림에 대한 알림 정보의 주소입니다. NotifyTypePsCreateProcessNotifySubsystems이면 NotifyInformation은 호출자가 제공한 프로세스 생성 콜백의 진입점을 지정하는 PCREATE_PROCESS_NOTIFY_ROUTINE_EX.

[in] Remove

PsSetCreateProcessNotifyRoutineEx2가 콜백 루틴 목록에서 지정된 루틴을 추가하거나 제거할지 여부를 지정하는 부울 값입니다. 이 매개 변수가 TRUE이면 지정된 루틴이 콜백 루틴 목록에서 제거됩니다. 이 매개 변수가 FALSE이면 지정된 루틴이 콜백 루틴 목록에 추가됩니다. RemoveTRUE이면 시스템은 반환하기 전에 모든 진행 중인 콜백 루틴이 완료되기를 기다립니다.

반환 값

PsSetCreateProcessNotifyRoutineEx2 는 다음 NTSTATUS 값 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS
이제 지정된 루틴이 운영 체제에 등록됩니다. 운영 체제는 새 프로세스를 만들 때마다 이 루틴을 호출합니다.
STATUS_INVALID_PARAMETER
지정된 루틴이 이미 등록되었거나 운영 체제가 프로세스 생성 콜백 루틴 등록 제한에 도달했습니다.

NotifyTypePsCreateProcessNotifySubsystems가 아닙니다.

STATUS_ACCESS_DENIED
콜백 루틴 포인터가 포함된 이미지에 이미지 헤더에 IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY 설정되지 않았습니다.

설명

드라이버는 PsSetCreateProcessNotifyRoutineEx2 를 호출하여 프로세스 생성 알림 루틴을 등록할 수 있습니다.

드라이버 제공 루틴이 등록되면 생성되거나 삭제된 프로세스의 고유 ID( ProcessId로 표시됨)로 호출됩니다. ParentId는 상속 핸들 옵션을 사용하여 만든 경우 새 프로세스의 부모 프로세스(우선 순위, 선호도, 할당량, 토큰 및 핸들 상속에 사용되는 부모)를 식별합니다. 상속 핸들 옵션 없이 만든 경우 부모 프로세스 ID는 NULL입니다.

Create 값이 TRUE이면 하위 시스템 프로세스가 생성되었습니다. FALSE는 프로세스가 삭제되었음을 나타냅니다.

프로세스가 만들어지면 프로세스의 첫 번째 스레드가 만들어진 직후 콜백 함수가 호출됩니다. 반대로 삭제를 위해 프로세스의 마지막 스레드가 종료되고 주소 공간이 삭제될 예정이면 함수가 호출됩니다. 스레드를 만들지 않고 프로세스가 만들어지고 삭제된 경우 생성 호출을 받지 않고 삭제를 위해 콜백을 호출할 수 있습니다.

드라이버는 언로드하기 전에 등록하는 콜백 함수를 제거해야 합니다. TRUE 제거를 사용하여 PsSetCreateProcessNotifyRoutineEx2를 호출하여 콜백을 제거할 = 수있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10, 버전 1703
지원되는 최소 서버 Windows Server 2016
대상 플랫폼 유니버설
헤더 ntddk.h(Ntddk.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs, PowerIrpDDis

추가 정보

PCREATE_PROCESS_NOTIFY_ROUTINE_EX

PsSetCreateProcessNotifyRoutine

PsSetCreateProcessNotifyRoutineEx