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 de 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 e funções de MiniportMessageInterruptDPC.
Valor de retorno
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.
Observações
Chamadas NDIS 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 |
---|---|
de cliente com suporte mínimo | Com suporte no NDIS 6.0 e 6.1. Para NDIS 6.20 e posterior, use NdisMQueueDpcEx. |
da Plataforma de Destino | Universal |
cabeçalho | ndis.h (inclua Ndis.h) |
biblioteca | Ndis.lib |
IRQL | Qualquer nível |