Função NdisMSynchronizeWithInterruptEx (ndis.h)

Os drivers de miniport chamam a função NdisMSynchronizeWithInterruptEx para sincronizar a execução de uma função fornecida pelo driver de miniport com a função MiniportInterrupt .

Sintaxe

BOOLEAN NdisMSynchronizeWithInterruptEx(
  [in] NDIS_HANDLE                            NdisInterruptHandle,
  [in] ULONG                                  MessageId,
  [in] MINIPORT_SYNCHRONIZE_INTERRUPT_HANDLER SynchronizeFunction,
  [in] PVOID                                  SynchronizeFunction,
  [in] PVOID                                  SynchronizeContext
);

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 interrupção sinalizada por mensagem com a qual o driver deve sincronizar. Se o NDIS não concedeu interrupções sinalizadas por mensagem para o driver, o NDIS ignorará esse parâmetro. 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] SynchronizeFunction

O ponto de entrada do driver Função MiniportSynchronizeInterrupt .

[in] SynchronizeFunction

O ponto de entrada do driver Função MiniportSynchronizeInterrupt .

[in] SynchronizeContext

Um ponteiro para uma área de contexto determinada pelo miniport-driver que é passada para a função MiniportSynchronizeInterrupt em SynchronizeContext .

Retornar valor

NdisMSynchronizeWithInterruptEx retorna o valor booliano que MiniportSynchronizeInterrupt retorna.

Comentários

Os drivers de miniport que registram uma interrupção com NdisMRegisterInterruptEx usam NdisMSynchronizeWithInterruptEx. O valor que oA função MiniportSynchronizeInterrupt retorna também é retornada por NdisMSynchronizeWithInterruptEx. Esse valor propagado fornece status ao chamador.

Qualquer função de driver de miniporta que compartilhe recursos com qualquer outra função de driver executada no DIRQL deve usar NdisMSynchronizeWithInterruptEx para sincronizar seu acesso a esses recursos. A função MiniportSynchronizeInterrupt também é executada no DIRQL e os recursos compartilhados são protegidos por um bloqueio de rotação alocado pelo sistema. Portanto, os recursos compartilhados são protegidos contra acesso simultâneo pela função MiniportInterrupt e pelo chamador.

NdisMSynchronizeWithInterruptEx libera o bloqueio de rotação do sistema e restaura o IRQL original de seu chamador antes de retornar o controle.

Para obter mais informações sobre como adquirir e liberar bloqueios de rotação do NDIS, consulte Sincronização e notificação em drivers de rede.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Universal
Cabeçalho ndis.h (inclua Ndis.h, Video.h)
Biblioteca Ndis.lib
IRQL <= DIRQL
Regras de conformidade da DDI NdisMDeregisterInterruptEx(ndis)

Confira também

IO_INTERRUPT_MESSAGE_INFO

IO_INTERRUPT_MESSAGE_INFO_ENTRY

MiniportInterrupt

MiniportSynchronizeInterrupt

NdisMRegisterInterruptEx