다음을 통해 공유


IInterruptSync::CallSynchronizedRoutine 메서드(portcls.h)

메서드는 CallSynchronizedRoutine ISR(인터럽트 서비스 루틴)이 아니지만 실행이 ISR과 동기화되어야 하는 루틴을 호출합니다.

구문

NTSTATUS CallSynchronizedRoutine(
  [in] PINTERRUPTSYNCROUTINE Routine,
  [in] PVOID                 DynamicContext
);

매개 변수

[in] Routine

호출할 루틴에 대한 포인터입니다. 이 루틴은 개체의 ISR 및 개체를 통해 동기화되는 다른 모든 루틴을 제외하여 실행됩니다. 다중 프로세서 컴퓨터에서도 지정된 개체에 의해 동기화되는 루틴은 동시에 실행되지 않습니다. 이 매개 변수는 PINTERRUPTSYNCROUTINE 형식의 함수 포인터입니다( IInterruptSync 참조).

[in] DynamicContext

루틴에 전달할 컨텍스트 값입니다.

반환 값

CallSynchronizedRoutine 는 호출에 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 메서드는 적절한 오류 코드를 반환합니다.

설명

에 전달 CallSynchronizedRoutine 된 루틴에 대한 호출이 완료될 때까지 등록된 ISR의 실행이 보류되도록 보장됩니다.

CallSynchronizedRoutine 호출자는 동기화 개체와 연결된 인터럽트 수준보다 작거나 같은 IRQL에서 실행되어야 합니다. 이 인터럽트는 PcNewInterruptSync 함수의 ResourceListResourceIndex 매개 변수에 의해 지정되었습니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 portcls.h(Portcls.h 포함)
IRQL 설명 섹션을 참조하십시오.

추가 정보

IInterruptSync

KeSynchronizeExecution

PcNewInterruptSync