Compartilhar via


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

Confira também

MiniportInterruptDPC

MiniportMessageInterruptDPC

NdisMQueueDpcEx

NdisMRegisterInterruptEx