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) |