Método IInterruptSync::CallSynchronizedRoutine (portcls.h)
O CallSynchronizedRoutine
método chama uma rotina que não é uma ISR (rotina de serviço de interrupção), mas cuja execução precisa ser sincronizada com ISRs.
Sintaxe
NTSTATUS CallSynchronizedRoutine(
[in] PINTERRUPTSYNCROUTINE Routine,
[in] PVOID DynamicContext
);
Parâmetros
[in] Routine
Ponteiro para a rotina que deve ser chamada. Essa rotina será executada exclusivamente do ISR do objeto e de todas as outras rotinas sincronizadas por meio do objeto . Mesmo em computadores com vários processadores, as rotinas sincronizadas por um determinado objeto não serão executadas simultaneamente. Esse parâmetro é um ponteiro de função do tipo PINTERRUPTSYNCROUTINE (consulte IInterruptSync).
[in] DynamicContext
Um valor de contexto a ser passado para a rotina.
Retornar valor
CallSynchronizedRoutine
retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida. Caso contrário, o método retorna um código de erro apropriado.
Comentários
É garantido que a execução de qualquer ISR registrado seja adiada até que a chamada para a rotina para CallSynchronizedRoutine
a qual é passado seja concluída.
Os chamadores de CallSynchronizedRoutine
devem estar em execução em um IRQL menor ou igual ao nível da interrupção associada ao objeto de sincronização. Essa interrupção foi especificada pelos parâmetros ResourceList e ResourceIndex da função PcNewInterruptSync.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | portcls.h (inclua Portcls.h) |
IRQL | Consulte a seção Observações. |