Funzione NdisMQueueDpc (ndis.h)
I driver miniport NDIS chiamano la funzione NdisMQueueDpc per pianificare le chiamate DPC sulle CPU.
Sintassi
ULONG NdisMQueueDpc(
[in] NDIS_HANDLE NdisInterruptHandle,
[in] ULONG MessageId,
[in] ULONG TargetProcessors,
[in, optional] 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 strutture 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 per i quali NDIS deve pianificare un DPC. 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 il bit 1, NDIS pianifica un DPC per CPU 1 e così via.
[in, optional] MiniportDpcContext
Puntatore a un'area di contesto specificata dal chiamante. NDIS passa questo puntatore al parametro MiniportDpcContext di MiniportInterruptDPC e Funzioni MiniportMessageInterruptDPC .
Valore restituito
NdisMQueueDpc restituisce una bitmap che indica i processori di destinazione per cui NDIS ha pianificato correttamente un DPC. Ogni bit nel valore restituito identifica una CPU. 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é un DPC era già pianificato per tale CPU.
Commenti
NDIS chiama MiniportInterruptDPC o MiniportMessageInterruptDPC per completare l'elaborazione posticipata di un interrupt. Il driver miniport può chiamare NdisMQueueDpc per richiedere ulteriori chiamate DPC per altri processori.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato in NDIS 6.0 e 6.1. Per NDIS 6.20 e versioni successive, usare NdisMQueueDpcEx. |
Piattaforma di destinazione | Universale |
Intestazione | ndis.h (include Ndis.h) |
Libreria | Ndis.lib |
IRQL | Qualsiasi livello |