다음을 통해 공유


KeRegisterNmiCallback 함수(wdm.h)

KeRegisterNmiCallback 루틴은 NMI(마스크할 수 없는 인터럽트)가 발생할 때마다 호출되는 루틴을 등록합니다.

통사론

PVOID KeRegisterNmiCallback(
  [in]           PNMI_CALLBACK CallbackRoutine,
  [in, optional] PVOID         Context
);

매개 변수

[in] CallbackRoutine

폼의 함수에 대한 포인터:

BOOLEAN
 XxxNmiCallback(
 IN PVOID Context,
  IN BOOLEAN Handled
 );

[in, optional] Context

호출될 때 XxxNmiCallbackContext 매개 변수로 전달할 값을 지정합니다.

반환 값

성공하면 KeRegisterNmiCallback 호출자가 콜백 등록을 취소하기 위해 KeDeregisterNmiCallback 전달하는 불투명 포인터를 반환합니다. 루틴은 콜백을 등록할 수 없는 경우 NULL 반환합니다.

발언

마스크할 수 없는 인터럽트 발생 시 시스템은 등록된 각 콜백을 등록된 순서와 반대 순서로 호출합니다. 첫 번째 콜백의 경우 시스템은 Handled 매개 변수로 FALSE 전달합니다. 각 후속 콜백에 대해 이전 콜백이 TRUE 반환된 경우 시스템은 TRUEHandled 매개 변수로 전달하고, 그렇지 않으면 FALSE 전달합니다. 콜백이 TRUE값을 반환하는 경우 시스템은 인터럽트를 처리한 것으로 간주합니다. 그렇지 않으면 시스템은 인터럽트에서 HAL의 기본 처리기를 호출하며, 이로 인해 일반적으로 시스템이 버그 검사를 받습니다.

콜백 루틴은 IRQL = HIGH_LEVEL 실행할 수 있어야 합니다.

요구 사항

요구
대상 플랫폼 보편적
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= APC_LEVEL(주의 섹션 참조)
DDI 규정 준수 규칙 HwStorPortProhibitedDDDIs(storport), IrqlKeApcLte2(wdm)

참고 항목

KeDeregisterNmiCallback