NdisMQueueDpc-Funktion (ndis.h)
NDIS miniport drivers call the NdisMQueueDpc function to schedule DPC calls on CPUs.
Syntax
ULONG NdisMQueueDpc(
[in] NDIS_HANDLE NdisInterruptHandle,
[in] ULONG MessageId,
[in] ULONG TargetProcessors,
[in, optional] PVOID MiniportDpcContext
);
Parameter
[in] NdisInterruptHandle
Ein Interrupt-Handle, den der Miniporttreiber in einem vorherigen Aufruf des Funktion NdisMRegisterInterruptEx.
[in] MessageId
Eine MSI-Nachrichten-ID für den DPC. Wenn der DPC für einen zeilenbasierten Interrupt bestimmt ist, wird dieser Parameter nicht verwendet und sollte auf Null festgelegt werden. Andernfalls ist MessageId ein Index für den IO_INTERRUPT_MESSAGE_INFO_ENTRY Strukturen in einem IO_INTERRUPT_MESSAGE_INFO Struktur. NDIS übergibt einen Zeiger an die zugeordnete IO_INTERRUPT_MESSAGE_INFO Struktur an der MessageInfoTable Member, wenn der Treiber erfolgreich für MSI mit der funktion NdisMRegisterInterruptEx registriert wird.
[in] TargetProcessors
Eine Bitmap, die die Zielprozessoren angibt, für die NDIS einen DPC planen soll. Jedes Bit in TargetProcessors identifiziert eine CPU. Wenn der Aufrufer Bit 0 festlegt, plant NDIS einen DPC für CPU 0. Wenn der Aufrufer Bit 1 festlegt, plant NDIS einen DPC für CPU 1 usw.
[in, optional] MiniportDpcContext
Ein Zeiger auf einen vom Aufrufer angegebenen Kontextbereich. NDIS übergibt diesen Zeiger an den MiniportDpcContext Parameter des MiniportInterruptDPC- und MiniportMessageInterruptDPC Funktionen.
Rückgabewert
NdisMQueueDpc gibt eine Bitmap zurück, die die Zielprozessoren angibt, für die NDIS erfolgreich einen DPC geplant hat. Jedes Bit im Rückgabewert identifiziert eine CPU. Wenn NDIS Bit 0 festlegt, hat NDIS einen DPC für CPU 0 geplant. Wenn NDIS Bit 1 festlegt, hat NDIS einen DPC für CPU 1 usw. geplant.
Wenn der Treiber einen DPC für eine CPU angefordert hat und NDIS angibt, dass er diesen DPC nicht geplant hat, wurde der DPC nicht geplant, da ein DPC bereits für diese CPU geplant wurde.
Bemerkungen
NDIS ruft MiniportInterruptDPC- oder MiniportMessageInterruptDPC, um die verzögerte Verarbeitung eines Interrupts abzuschließen. Der Miniporttreiber kann NdisMQueueDpc- aufrufen, um zusätzliche DPC-Aufrufe für andere Prozessoren anzufordern.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Unterstützt in NDIS 6.0 und 6.1. Verwenden Sie für NDIS 6.20 und höher NdisMQueueDpcEx. |
Zielplattform- | Universal |
Header- | ndis.h (include Ndis.h) |
Library | Ndis.lib |
IRQL- | Beliebige Ebene |