APC 유형
APC(비동기 프로시저 호출)는 비동기적으로 실행되는 함수입니다. APC는 DPC(지연 프로시저 호출)와 유사하지만 DPC와 달리 APC는 특정 스레드의 컨텍스트 내에서 실행됩니다. 드라이버(파일 시스템 및 파일 시스템 필터 드라이버 이외의)는 APC를 직접 사용하지 않지만 운영 체제의 다른 부분에서는 APC의 작동 방식을 알고 있어야 합니다.
Windows 운영 체제는 네 가지 종류의 APC를 사용합니다.
특수 사용자 모드 APC는 사용자 모드에서 엄격하게 실행되며 대상 스레드가 경고 대기 상태가 아니더라도 항상 실행됩니다. 특수 사용자 모드 APC에 대한 자세한 내용은 QueueUserAPC2를 참조하세요.
일반 사용자 모드 APC 는 사용자 모드에서 엄격하게 실행되며 대상 스레드가 경고 대기 상태인 경우에만 실행됩니다. 운영 체제는 일반 사용자 APC를 사용하여 겹치는 I/O 및 QueueUserApc Win32 루틴과 같은 메커니즘을 구현합니다.
일반 커널 APC는 IRQL = PASSIVE_LEVEL 커널 모드에서 실행됩니다. 일반 커널 APC는 사용자 APC를 포함한 모든 사용자 모드 코드를 선점합니다. 일반 커널 APC는 일반적으로 파일 시스템 및 파일 시스템 필터 드라이버에서 사용됩니다.
특수 커널 APC는 IRQL = APC_LEVEL 커널 모드로 실행됩니다. 특수 커널 APC는 사용자 APC 및 일반 커널 APC를 포함하여 IRQL = PASSIVE_LEVEL 실행되는 사용자 모드 코드 및 커널 모드 코드를 선점합니다. 운영 체제는 특수 커널 APC를 사용하여 I/O 요청 완료와 같은 작업을 처리합니다.
가장 낮은 우선 순위에서 가장 높은 우선 순위까지의 IRQL 목록은 하드웨어 우선 순위 관리를 참조하세요.