Condividi tramite


Funzione NdisMQueueDpcEx (ndis.h)

I driver miniport NDIS chiamano la funzione NdisMQueueDpcEx per pianificare le chiamate DPC sulle CPU.

Sintassi

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

Parametri

[in] NdisInterruptHandle

Handle di interruzione ottenuto dal driver miniport in una chiamata precedente al Funzione NdisMRegisterInterruptEx .

[in] MessageId

ID messaggio MSI per il DPC. Se il DPC è per un interrupt basato su riga, questo parametro non viene usato e deve essere impostato su zero. In caso contrario, MessageId è un indice dell'oggetto IO_INTERRUPT_MESSAGE_INFO_ENTRY struttura all'interno di un IO_INTERRUPT_MESSAGE_INFO struttura. NDIS passa un puntatore alla struttura di IO_INTERRUPT_MESSAGE_INFO associata nel membro MessageInfoTable quando il driver esegue correttamente la registrazione per MSI con la funzione NdisMRegisterInterruptEx .

[in] TargetProcessors

Bitmap che indica i processori di destinazione. NDIS deve pianificare un DPC per ogni processore di destinazione indicato nella bitmap. Ogni bit in TargetProcessors identifica una CPU. Se il chiamante imposta il bit 0, NDIS pianifica un DPC per CPU 0. Se il chiamante imposta bit 1, NDIS pianifica un DPC per CPU 1 e così via.

[in] MiniportDpcContext

Puntatore a un'area di contesto specificata dal chiamante. NDIS passa questo puntatore al parametro MiniportDpcContext di MiniportInterruptDPC e Funzioni MiniportMessageInterruptDPC .

Valore restituito

NdisMQueueDpcEx restituisce una bitmap che indica i processori di destinazione. Ogni bit nel valore restituito identifica una CPU.

NDIS ha pianificato correttamente un DPC per ogni processore di destinazione impostato nella bitmap. Se NDIS imposta il bit 0, NDIS ha pianificato un DPC per CPU 0. Se NDIS imposta il bit 1, NDIS ha pianificato un DPC per CPU 1 e così via.

Se il driver ha richiesto un DPC per una CPU e NDIS indica che non ha pianificato tale DPC, il DPC non è stato pianificato perché il DPC mappato a questa coppia di interrupt/processore è già stato pianificato per tale CPU.

Commenti

I driver miniport NDIS 6.20 e versioni successive chiamano NdisMQueueDpcEx per richiedere chiamate DPC per altri processori. NDIS chiama MiniportInterruptDPC o Funzione MiniportMessageInterruptDPC per completare l'elaborazione posticipata di un interrupt.

NdisMQueueDpcEx è uguale alla funzione NdisMQueueDpc , ad eccezione del fatto che il parametro TargetProcessors ha un tipo di KGROUP_AFFINITY. Pertanto , NdisMQueueDpcEx può pianificare i controller di dominio nei processori in qualsiasi gruppo di processori. Per pianificare i CONTROLLER di dominio in più gruppi di processori, è possibile usare più chiamate a NdisMQueueDpcEx.

NotaNdisMQueueDpc, MiniportInterrupt e Le funzioni MiniportMessageInterrupt hanno un parametro TargetProcessors che è un ULONG. Questo parametro specifica i primi 32 processori nel gruppo di processori 0.
 
Importante I driver NDIS 6.20 e versioni successive devono sempre usare NdisMQueueDpcEx per pianificare i controller di dominio.
 

Requisiti

Requisito Valore
Client minimo supportato Supportato in NDIS 6.20 e versioni successive.
Piattaforma di destinazione Universale
Intestazione ndis.h (include Ndis.h)
Libreria Ndis.lib
IRQL Qualsiasi livello

Vedi anche

MiniportInterrupt

MiniportInterruptDPC

MiniportMessageInterrupt

MiniportMessageInterruptDPC

NdisMQueueDpc

NdisMRegisterInterruptEx