Função NdisMQueueDpc (ndis.h)
Os drivers de miniporto NDIS chamam a função NdisMQueueDpc para agendar chamadas DPC em CPUs.
Sintaxe
ULONG NdisMQueueDpc(
[in] NDIS_HANDLE NdisInterruptHandle,
[in] ULONG MessageId,
[in] ULONG TargetProcessors,
[in, optional] PVOID MiniportDpcContext
);
Parâmetros
[in] NdisInterruptHandle
Um identificador de interrupção que o driver de miniporto obteve em uma chamada anterior para o Função NdisMRegisterInterruptEx .
[in] MessageId
Uma ID de mensagem MSI para o DPC. Se o DPC for para uma interrupção baseada em linha, esse parâmetro não será usado e deverá ser definido como zero. Caso contrário, MessageId é um índice para o IO_INTERRUPT_MESSAGE_INFO_ENTRY estruturas dentro de um IO_INTERRUPT_MESSAGE_INFO estrutura. O NDIS passa um ponteiro para a estrutura IO_INTERRUPT_MESSAGE_INFO associada no membro MessageInfoTable quando o driver se registra com êxito para MSI com a função NdisMRegisterInterruptEx .
[in] TargetProcessors
Um bitmap que indica os processadores de destino para os quais o NDIS deve agendar um DPC. Cada bit em TargetProcessors identifica uma CPU. Se o chamador definir o bit 0, o NDIS agenda um DPC para CPU 0. Se o chamador definir o bit 1, o NDIS agenda um DPC para CPU 1 e assim por diante.
[in, optional] MiniportDpcContext
Um ponteiro para uma área de contexto especificada pelo chamador. O NDIS passa esse ponteiro para o parâmetro MiniportDpcContext do MiniportInterruptDPC eFunções MiniportMessageInterruptDPC.
Retornar valor
NdisMQueueDpc retorna um bitmap que indica os processadores de destino para os quais o NDIS agendou com êxito um DPC. Cada bit no valor retornado identifica uma CPU. Se o NDIS definir o bit 0, o NDIS agendou um DPC para CPU 0. Se o NDIS definir o bit 1, o NDIS agendou um DPC para CPU 1 e assim por diante.
Se o driver solicitou um DPC para uma CPU e o NDIS indica que ele não agendou esse DPC, o DPC não foi agendado porque um DPC já estava agendado para essa CPU.
Comentários
O NDIS chama MiniportInterruptDPC ou MiniportMessageInterruptDPC para concluir o processamento adiado de uma interrupção. O driver de miniporto pode chamar NdisMQueueDpc para solicitar chamadas DPC adicionais para outros processadores.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.0 e 6.1. Para o NDIS 6.20 e posterior, use NdisMQueueDpcEx. |
Plataforma de Destino | Universal |
Cabeçalho | ndis.h (inclua Ndis.h) |
Biblioteca | Ndis.lib |
IRQL | Qualquer nível |