Fungsi NdisMQueueDpcEx (ndis.h)

Driver miniport NDIS memanggil fungsi NdisMQueueDpcEx untuk menjadwalkan panggilan DPC pada CPU.

Sintaks

KAFFINITY NdisMQueueDpcEx(
  [in] IN NDIS_HANDLE     NdisInterruptHandle,
  [in] IN ULONG           MessageId,
  [in] IN PGROUP_AFFINITY TargetProcessors,
  [in] IN PVOID           MiniportDpcContext
);

Parameter

[in] NdisInterruptHandle

Handel interupsi yang diperoleh driver miniport dalam panggilan sebelumnya ke Fungsi NdisMRegisterInterruptEx .

[in] MessageId

ID pesan MSI untuk DPC. Jika DPC adalah untuk interupsi berbasis baris, parameter ini tidak digunakan dan harus diatur ke nol. Jika tidak, MessageId adalah indeks untuk IO_INTERRUPT_MESSAGE_INFO_ENTRY struktur di dalam IO_INTERRUPT_MESSAGE_INFO struktur. NDIS meneruskan penunjuk ke struktur IO_INTERRUPT_MESSAGE_INFO terkait di anggota MessageInfoTable ketika driver berhasil mendaftar untuk MSI dengan fungsi NdisMRegisterInterruptEx .

[in] TargetProcessors

Bitmap yang menunjukkan prosesor target. NDIS harus menjadwalkan DPC untuk setiap prosesor target yang ditunjukkan dalam bitmap. Setiap bit dalam TargetProcessors mengidentifikasi CPU. Jika pemanggil menetapkan bit 0, NDIS menjadwalkan DPC untuk CPU 0. Jika penelepon mengatur bit 1, NDIS menjadwalkan DPC untuk CPU 1, dan sebagainya.

[in] MiniportDpcContext

Penunjuk ke area konteks yang ditentukan penelepon. NDIS meneruskan pointer ini ke parameter MiniportDpcContext dari MiniportInterruptDPC dan Fungsi MiniportMessageInterruptDPC .

Nilai kembali

NdisMQueueDpcEx mengembalikan bitmap yang menunjukkan prosesor target. Setiap bit dalam nilai yang dikembalikan mengidentifikasi CPU.

NDIS berhasil menjadwalkan DPC untuk setiap prosesor target yang diatur dalam bitmap. Jika NDIS menetapkan bit 0, NDIS menjadwalkan DPC untuk CPU 0. Jika NDIS menetapkan bit 1, NDIS menjadwalkan DPC untuk CPU 1, dan sebagainya.

Jika driver meminta DPC untuk CPU, dan NDIS menunjukkan bahwa ia tidak menjadwalkan DPC tersebut, maka DPC tidak dijadwalkan karena DPC yang memetakan ke pasangan interupsi/prosesor ini sudah dijadwalkan untuk CPU tersebut.

Keterangan

Driver miniport NDIS 6.20 dan yang lebih baru memanggil NdisMQueueDpcEx untuk meminta panggilan DPC untuk prosesor lain. NDIS memanggil MiniportInterruptDPC atau Fungsi MiniportMessageInterruptDPC untuk menyelesaikan pemrosesan interupsi yang ditangguhkan.

NdisMQueueDpcEx sama dengan fungsi NdisMQueueDpc kecuali bahwa parameter TargetProcessors memiliki jenis KGROUP_AFFINITY. Oleh karena itu, NdisMQueueDpcEx dapat menjadwalkan DPC pada prosesor dalam grup prosesor apa pun. Untuk menjadwalkan DPC di lebih dari satu grup prosesor, Anda dapat menggunakan beberapa panggilan ke NdisMQueueDpcEx.

CatatanNdisMQueueDpc, MiniportInterrupt, dan Fungsi MiniportMessageInterrupt memiliki parameter TargetProcessors yang merupakan ULONG. Parameter ini menentukan 32 prosesor pertama dalam grup prosesor 0.
 
Penting Driver NDIS 6.20 dan yang lebih baru harus selalu menggunakan NdisMQueueDpcEx untuk menjadwalkan DPC.
 

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung di NDIS 6.20 dan yang lebih baru.
Target Platform Universal
Header ndis.h (termasuk Ndis.h)
Pustaka Ndis.lib
IRQL Tingkat apa pun

Lihat juga

MiniportInterrupt

MiniportInterruptDPC

MiniportMessageInterrupt

MiniportMessageInterruptDPC

NdisMQueueDpc

NdisMRegisterInterruptEx