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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk