WdfInterruptSetPolicy 함수(wdfinterrupt.h)
[KMDF 및 UMDF에 적용]
WdfInterruptSetPolicy 메서드는 지정된 인터럽트에 대한 인터럽트 우선 순위, 프로세서 선호도 및 선호도 정책을 지정합니다.
구문
void WdfInterruptSetPolicy(
[in] WDFINTERRUPT Interrupt,
[in] WDF_INTERRUPT_POLICY Policy,
[in] WDF_INTERRUPT_PRIORITY Priority,
[in] KAFFINITY TargetProcessorSet
);
매개 변수
[in] Interrupt
프레임워크 인터럽트 개체에 대한 핸들입니다.
[in] Policy
인터럽트 프로세서 선호도 정책을 지정하는 WDF_INTERRUPT_POLICY 형식의 열거자입니다.
[in] Priority
인터럽트 우선 순위를 지정하는 WDF_INTERRUPT_PRIORITY 형식의 열거자입니다.
[in] TargetProcessorSet
Policy 매개 변수가 WdfIrqPolicySpecifiedProcessors로 설정된 경우 인터럽트 프로세서 선호도를 지정하는 KAFFINITY 형식 값입니다.
반환 값
없음
설명
드라이버가 잘못된 개체 핸들을 제공하는 경우 버그 검사 발생합니다.
Windows Vista 이상 버전의 운영 체제를 사용하면 드라이버가 인터럽트의 우선 순위, 프로세서 선호도 및 선호도 정책을 지정할 수 있습니다. 레지스트리를 사용하여 WdfInterruptSetPolicy 가 설정하는 값을 재정의하는 방법에 대한 자세한 내용은 인터럽트 선호도 및 우선 순위를 참조하세요.
드라이버가 Windows Vista 이전의 운영 체제 버전에서 실행되는 경우 프레임워크는 드라이버가 WdfInterruptSetPolicy를 호출할 때 지정하는 값을 무시합니다.
인터럽트의 우선 순위, 프로세서 선호도 및 선호도 정책을 지정하는 레지스트리 값 및 INF 섹션에 대한 자세한 내용은 인터럽트 선호도 및 우선 순위를 참조하세요.
드라이버가 WdfInterruptSetPolicy를 호출하는 경우 일반적으로 WdfInterruptCreate를 호출한 후 EvtDriverDeviceAdd 콜백 함수에서 호출합니다.
드라이버가 EvtDevicePrepareHardware에서 인터럽트를 만드는 경우 WdfInterruptSetPolicy 또는 WdfInterruptSetExtendedPolicy를 사용하지 마세요. 대신 이 콜백 함수가 IoResourceRequirementsList 매개 변수에서 수신하는 인터럽트 리소스 요구 사항을 직접 조작하여 EvtDeviceFilterAddResourceRequirements에 정책을 적용합니다.
프레임워크 기반 드라이버에서 인터럽트 처리에 대한 자세한 내용은 하드웨어 인터럽트 처리를 참조하세요.
예제
다음 코드 예제에서는 프로세서 0에 디바이스 인터럽트(정상 우선 순위)를 할당합니다.
#define AFFINITY_MASK(n) ((ULONG_PTR)1 << (n))
WdfInterruptSetPolicy(
Interrupt,
WdfIrqPolicySpecifiedProcessors,
WdfIrqPriorityNormal,
AFFINITY_MASK(0)
);
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
최소 KMDF 버전 | 1.0 |
최소 UMDF 버전 | 2.0 |
머리글 | wdfinterrupt.h(Wdf.h 포함) |
라이브러리 | Wdf01000.sys(KMDF); WUDFx02000.dll(UMDF) |
IRQL | <=DISPATCH_LEVEL |
DDI 규정 준수 규칙 | DriverCreate(kmdf) |