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.
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 |