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 반환합니다. 그렇지 않으면 메서드가 적절한 오류 코드를 반환합니다.

설명

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

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

요구 사항

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

참고 항목

IInterruptSync

KeSynchronizeExecution

PcNewInterruptSync