Compartilhar via


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.

Confira também

IInterruptSync

KeSynchronizeExecution

PcNewInterruptSync