APC 유형

APC(비동기 프로시저 호출)는 비동기적으로 실행되는 함수입니다. APC는 DPC(지연 프로시저 호출)와 유사하지만 DPC와 달리 APC는 특정 스레드의 컨텍스트 내에서 실행됩니다. 드라이버(파일 시스템 및 파일 시스템 필터 드라이버 이외의)는 APC를 직접 사용하지 않지만 운영 체제의 다른 부분에서는 APC의 작동 방식을 알고 있어야 합니다.

Windows 운영 체제는 네 가지 종류의 APC를 사용합니다.

  • 특수 사용자 모드 APC는 사용자 모드에서 엄격하게 실행되며 대상 스레드가 경고 대기 상태가 아니더라도 항상 실행됩니다. 특수 사용자 모드 APC에 대한 자세한 내용은 QueueUserAPC2를 참조하세요.

  • 일반 사용자 모드 APC 는 사용자 모드에서 엄격하게 실행되며 대상 스레드가 경고 대기 상태인 경우에만 실행됩니다. 운영 체제는 일반 사용자 APC를 사용하여 겹치는 I/OQueueUserApc Win32 루틴과 같은 메커니즘을 구현합니다.

  • 일반 커널 APC는 IRQL = PASSIVE_LEVEL 커널 모드에서 실행됩니다. 일반 커널 APC는 사용자 APC를 포함한 모든 사용자 모드 코드를 선점합니다. 일반 커널 APC는 일반적으로 파일 시스템 및 파일 시스템 필터 드라이버에서 사용됩니다.

  • 특수 커널 APC는 IRQL = APC_LEVEL 커널 모드로 실행됩니다. 특수 커널 APC는 사용자 APC 및 일반 커널 APC를 포함하여 IRQL = PASSIVE_LEVEL 실행되는 사용자 모드 코드 및 커널 모드 코드를 선점합니다. 운영 체제는 특수 커널 APC를 사용하여 I/O 요청 완료와 같은 작업을 처리합니다.

가장 낮은 우선 순위에서 가장 높은 우선 순위까지의 IRQL 목록은 하드웨어 우선 순위 관리를 참조하세요.