Bagikan melalui


Fungsi KeSetTargetProcessorDpcEx (wdm.h)

Rutinitas KeSetTargetProcessorDpcEx menentukan prosesor yang akan dijalankan rutinitas DPC.

Sintaks

NTSTATUS KeSetTargetProcessorDpcEx(
  [in, out] PKDPC             Dpc,
  [in]      PPROCESSOR_NUMBER ProcNumber
);

Parameter

[in, out] Dpc

Penunjuk ke objek DPC penelepon. Parameter ini menunjuk ke struktur KDPC , yang merupakan struktur sistem buram yang mewakili objek DPC. Objek ini sebelumnya harus diinisialisasi oleh rutinitas KeInitializeDpc .

[in] ProcNumber

Penunjuk ke struktur PROCESSOR_NUMBER yang dialokasikan penelepon yang mengidentifikasi prosesor target tempat DPC akan diantrekan dan dijalankan. Struktur ini menentukan grup dan prosesor dalam grup ini.

Nilai kembali

KeSetTargetProcessorDpcEx mengembalikan STATUS_SUCCESS jika panggilan berhasil. Jika tidak, ia mengembalikan yang berikut ini:

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER
Parameter ProcNumber menunjuk ke nomor prosesor yang tidak valid.

Keterangan

Setiap prosesor dalam sistem multiprosesor memiliki antrean DPC sendiri. KeSetTargetProcessorDpcEx menentukan antrean prosesor mana yang harus digunakan sistem saat driver memanggil rutinitas KeInsertQueueDpc atau IoRequestDpc untuk mengantre DPC untuk dijalankan nanti.

KeSetTargetProcessorDpcEx dapat menentukan prosesor target untuk DPC biasa dan DPC utas. DPC biasa tidak dapat didahulukan oleh utas prioritas tinggi, tetapi DPC utas dapat didahulukan oleh utas kritis waktu yang memiliki prioritas yang cukup tinggi.

Rutinitas terkait, KeSetTargetProcessorDpc, menentukan prosesor target untuk DPC, tetapi rutinitas ini, tidak seperti KeSetTargetProcessorDpcEx, tidak menentukan grup untuk prosesor target. Dimulai dengan Windows 7, KeSetTargetProcessorDpc mengasumsikan bahwa prosesor target milik grup 0. Perilaku ini memastikan bahwa driver yang ada yang memanggil KeSetTargetProcessorDpc dan yang tidak menggunakan fitur berorientasi grup akan berjalan dengan benar dalam sistem multiprosedur yang memiliki dua grup atau lebih. Namun, driver yang menggunakan fitur berorientasi grup apa pun di Windows 7 dan versi yang lebih baru dari sistem operasi Windows harus memanggil KeSetTargetProcessorDpcEx alih-alih KeSetTargetProcessorDpc.

Panggilan ke KeSetTargetProcessorDpcEx yang terjadi setelah objek DPC diantrekan tidak berpengaruh pada pemilihan prosesor agar rutinitas DPC berjalan. Untuk mengontrol pemilihan prosesor target, panggilan KeSetTargetProcessorDpcEx harus terjadi sebelum panggilan ke KeInsertQueueDpc atau IoRequestDpc yang mengantre objek DPC.

Untuk informasi selengkapnya tentang antrean DPC, lihat Organisasi Antrean DPC.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows 7.
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Tingkat apa pun

Lihat juga

IoRequestDpc

KDPC

KeInitializeDpc

KeInsertQueueDpc

KeSetTargetProcessorDpc

PROCESSOR_NUMBER