Fungsi WdfInterruptSetExtendedPolicy (wdfinterrupt.h)

[Berlaku untuk KMDF dan UMDF]

Metode WdfInterruptSetExtendedPolicy menentukan prioritas interupsi, afinitas prosesor, kebijakan afinitas, dan grup prosesor untuk interupsi tertentu.

Sintaks

void WdfInterruptSetExtendedPolicy(
  [in] WDFINTERRUPT                   Interrupt,
  [in] PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup
);

Parameter

[in] Interrupt

Handel ke objek interupsi kerangka kerja.

[in] PolicyAndGroup

Penunjuk ke struktur WDF_INTERRUPT_EXTENDED_POLICY yang dialokasikan dan diinisialisasi oleh penelepon.

Nilai kembali

Tidak ada

Keterangan

Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.

Windows Vista dan versi sistem operasi yang lebih baru memungkinkan driver menggunakan metode WdfInterruptSetPolicy untuk menentukan prioritas interupsi, afinitas prosesor, dan kebijakan afinitas. Selain itu, versi 1.9 dan yang lebih baru dari KMDF memungkinkan driver untuk menggunakan metode WdfInterruptSetExtendedPolicy untuk menentukan prioritas interupsi, afinitas prosesor, kebijakan afinitas, dan grup prosesor.

Untuk informasi tentang cara menggunakan registri untuk mengambil alih nilai yang ditetapkan WdfInterruptSetExtendedPolicy , lihat Mengganggu Afinitas dan Prioritas.

Jika driver berjalan pada versi sistem operasi yang lebih lama dari Windows 7, kerangka kerja mengabaikan nilai yang ditentukan driver untuk nomor grup prosesor saat memanggil WdfInterruptSetExtendedPolicy.

Jika driver berjalan pada versi sistem operasi yang lebih lama dari Windows Vista, kerangka kerja mengabaikan semua nilai yang ditentukan driver ketika memanggil WdfInterruptSetPolicy atau WdfInterruptSetExtendedPolicy.

Untuk informasi selengkapnya tentang nilai registri dan bagian INF yang menentukan prioritas interupsi, afinitas prosesor, dan kebijakan afinitas, lihat Mengganggu Afinitas dan Prioritas.

Jika driver memanggil WdfInterruptSetExtendedPolicy, driver biasanya melakukannya dalam fungsi panggilan balik EvtDriverDeviceAdd , setelah memanggil WdfInterruptCreate.

Jika driver Anda membuat interupsi di EvtDevicePrepareHardware, jangan gunakan WdfInterruptSetPolicy atau WdfInterruptSetExtendedPolicy. Sebagai gantinya, Anda dapat menerapkan kebijakan di EvtDeviceFilterAddResourceRequirements, dengan langsung memanipulasi persyaratan sumber daya interupsi yang diterima fungsi panggilan balik ini dalam parameter IoResourceRequirementsList-nya .

Untuk informasi selengkapnya tentang penanganan gangguan dalam driver berbasis kerangka kerja, lihat Menangani Gangguan Perangkat Keras.

Contoh

Contoh kode berikut memanggil WDF_INTERRUPT_EXTENDED_POLICY_INIT untuk menginisialisasi struktur WDF_INTERRUPT_EXTENDED_POLICY ; menetapkan nilai untuk kebijakan, prioritas, dan set prosesor target; dan memanggil WdfInterruptSetExtendedPolicy. Contoh menetapkan prioritas normal untuk gangguan dan menetapkan interupsi ke prosesor 0 dalam grup prosesor 2.

#define AFFINITY_MASK(n) ((ULONG_PTR)1 << (n))

WDF_INTERRUPT_EXTENDED_POLICY myExtendedPolicy;

WDF_INTERRUPT_EXTENDED_POLICY_INIT(&myExtendedPolicy);
myExtendedPolicy.Policy = WdfIrqPolicySpecifiedProcessors;
myExtendedPolicy.Priority = WdfIrqPriorityNormal;
myExtendedPolicy.TargetProcessorSetAndGroup.Mask = AFFINITY_MASK(0);
myExtendedPolicy.TargetProcessorSetAndGroup.Group = 2;

WdfInterruptSetExtendedPolicy(
                              Interrupt,
                              &myExtendedPolicy
 );

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1.9
Versi UMDF minimum 2.0
Header wdfinterrupt.h (termasuk Wdf.h)
Pustaka Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
Aturan kepatuhan DDI DriverCreate(kmdf)

Lihat juga

WdfInterruptSetPolicy