NdisMQueueDpc-Funktion (ndis.h)
NDIS-Miniporttreiber rufen die NdisMQueueDpc-Funktion auf, um DPC-Aufrufe auf CPUs zu planen.
Syntax
ULONG NdisMQueueDpc(
[in] NDIS_HANDLE NdisInterruptHandle,
[in] ULONG MessageId,
[in] ULONG TargetProcessors,
[in, optional] PVOID MiniportDpcContext
);
Parameter
[in] NdisInterruptHandle
Ein Interrupthandle, das der Miniporttreiber bei einem vorherigen Aufruf des NdisMRegisterInterruptEx-Funktion .
[in] MessageId
Eine MSI-Nachrichten-ID für den DPC. Wenn der DPC für einen zeilenbasierten Interrupt gilt, wird dieser Parameter nicht verwendet, und er sollte auf 0 festgelegt werden. Andernfalls ist MessageId ein Index für die IO_INTERRUPT_MESSAGE_INFO_ENTRY Strukturen in einem IO_INTERRUPT_MESSAGE_INFO Struktur. NDIS übergibt einen Zeiger auf die zugeordnete IO_INTERRUPT_MESSAGE_INFO-Struktur am MessageInfoTable-Member , wenn der Treiber erfolgreich für MSI mit der NdisMRegisterInterruptEx-Funktion 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 auf 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 bereits ein DPC für diese CPU geplant war.
Hinweise
NDIS ruft MiniportInterruptDPC auf 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 |
---|---|
Unterstützte Mindestversion (Client) | Unterstützt in NDIS 6.0 und 6.1. Verwenden Sie für NDIS 6.20 und höher NdisMQueueDpcEx. |
Zielplattform | Universell |
Header | ndis.h (einschließlich Ndis.h) |
Bibliothek | Ndis.lib |
IRQL | Beliebige Ebene |