Функция 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
Значение типа KAFFINITY, указывающее сходство процессора для прерывания, если параметр Policy имеет значение WdfIrqPolicySpecifiedProcessors.
Возвращаемое значение
None
Remarks
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Windows Vista и более поздние версии операционной системы позволяют драйверам указывать приоритет прерывания, сходство процессоров и политику сходства. Сведения о том, как использовать реестр для переопределения значений, устанавливаемых WdfInterruptSetPolicy , см. в разделе Сходство прерываний и приоритет.
Если драйвер работает в версии операционной системы, более ранней, чем Windows Vista, платформа игнорирует значения, заданные драйвером при вызове WdfInterruptSetPolicy.
Дополнительные сведения о значениях реестра и разделах INF, определяющих приоритет прерывания, сходство процессора и политику сходства, см. в разделе Сходство прерываний и приоритет.
Если драйвер вызывает WdfInterruptSetPolicy, он обычно делает это в своей функции обратного вызова EvtDriverDeviceAdd после вызова WdfInterruptCreate.
Если драйвер создает прерывания в EvtDevicePrepareHardware, не используйте WdfInterruptSetPolicy или WdfInterruptSetExtendedPolicy. Вместо этого примените политику в EvtDeviceFilterAddResourceRequirements, напрямую управляя требованием к ресурсу прерывания, которое эта функция обратного вызова получает в параметре IoResourceRequirementsList .
Дополнительные сведения об обработке прерываний в драйверах на основе платформы см. в разделе Обработка аппаратных прерываний.
Примеры
В следующем примере кода прерывание устройства назначается процессору 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) |