Поделиться через


Функция 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типа, указывающее сходство процессора для прерывания, если параметр политики имеет значение WdfIrqPolicySpecifiedProcessors.

Возвращаемое значение

Нет

Замечания

Ошибка возникает, если драйвер предоставляет недопустимый дескриптор объекта.

Windows Vista и более поздние версии операционной системы позволяют драйверам указывать приоритет прерывания, сходство процессора и политику сходства. Сведения об использовании реестра для переопределения значений, которые наборов WdfInterruptSetPoli cy, см. в разделе "Сходство прерываний и приоритет".

Если драйвер работает в версии операционной системы, которая более ранняя, чем 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 (include Wdf.h)
Библиотека Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
правил соответствия DDI DriverCreate(kmdf)

См. также

EvtDriverDeviceAdd

WdfInterruptCreate

WdfInterruptSetExtendedPolicy