NdisMQueueDpcEx-Funktion (ndis.h)
NDIS-Miniporttreiber rufen die NdisMQueueDpcEx-Funktion auf, um DPC-Aufrufe auf CPUs zu planen.
Syntax
KAFFINITY NdisMQueueDpcEx(
[in] IN NDIS_HANDLE NdisInterruptHandle,
[in] IN ULONG MessageId,
[in] IN PGROUP_AFFINITY TargetProcessors,
[in] IN PVOID MiniportDpcContext
);
Parameter
[in] NdisInterruptHandle
Ein Interrupthandle, das der Miniporttreiber bei einem vorherigen Aufruf des abgerufen hat. NdisMRegisterInterruptEx-Funktion .
[in] MessageId
Eine MSI-Nachrichten-ID für den DPC. Wenn der DPC für einen zeilenbasierten Interrupt vorgesehen ist, wird dieser Parameter nicht verwendet, und er sollte auf 0 (null) festgelegt werden. Andernfalls ist MessageId ein Index für die IO_INTERRUPT_MESSAGE_INFO_ENTRY-Struktur 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 Zielprozessoren angibt. NDIS sollte einen DPC für jeden Zielprozessor planen, der in der Bitmap angegeben ist. 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] MiniportDpcContext
Ein Zeiger auf einen vom Aufrufer angegebenen Kontextbereich. NDIS übergibt diesen Zeiger an den MiniportDpcContext-Parameter des MiniportInterruptDPC und MiniportMessageInterruptDPC-Funktionen .
Rückgabewert
NdisMQueueDpcEx gibt eine Bitmap zurück, die Zielprozessoren angibt. Jedes Bit im Rückgabewert identifiziert eine CPU.
NDIS hat erfolgreich einen DPC für jeden Zielprozessor geplant, der in der Bitmap festgelegt ist. 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 der DPC, der diesem Interrupt/Prozessorpaar zugeordnet ist, bereits für diese CPU geplant war.
Hinweise
NDIS 6.20 und höher rufen Miniporttreiber NdisMQueueDpcEx auf, um DPC-Aufrufe für andere Prozessoren anzufordern. NDIS ruft miniportInterruptDPC oder auf. MiniportMessageInterruptDPC-Funktion , um die verzögerte Verarbeitung eines Interrupts abzuschließen.
NdisMQueueDpcEx ist identisch mit der NdisMQueueDpc-Funktion , mit der Ausnahme, dass der TargetProcessors-Parameter über einen Typ von KGROUP_AFFINITY verfügt. Daher kann NdisMQueueDpcEx DPCs auf Prozessoren in jeder Prozessorgruppe planen. Um DPCs in mehreren Prozessorgruppen zu planen, können Sie mehrere Aufrufe von NdisMQueueDpcEx verwenden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Unterstützt in NDIS 6.20 und höher. |
Zielplattform | Universell |
Header | ndis.h (include Ndis.h) |
Bibliothek | Ndis.lib |
IRQL | Beliebige Ebene |