다음을 통해 공유


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 을 반환합니다.

설명

마스크할 수 없는 인터럽트 발생 시 시스템은 등록된 각 콜백을 등록된 순서와 반대 순서로 호출합니다. 첫 번째 콜백의 경우 시스템은 FALSEHandled 매개 변수로 전달합니다. 이후의 각 콜백에 대해 이전 콜백이 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 규정 준수 규칙 HwStorPortProhibitedDDIs(storport), IrqlKeApcLte2(wdm)

추가 정보

KeDeregisterNmiCallback