Condividi tramite


Metodo IInterruptSync::CallSynchronizedRoutine (portcls.h)

Il metodo CallSynchronizedRoutine chiama una routine che non è una routine del servizio interrupt (ISR), ma la cui esecuzione deve essere sincronizzata con gli ISR.

Sintassi

NTSTATUS CallSynchronizedRoutine(
  [in] PINTERRUPTSYNCROUTINE Routine,
  [in] PVOID                 DynamicContext
);

Parametri

[in] Routine

Puntatore alla routine da chiamare. Questa routine verrà eseguita in modo esclusivo dell'ISR dell'oggetto e di tutte le altre routine sincronizzate tramite l'oggetto . Anche in computer con più processori, le routine sincronizzate da un determinato oggetto non verranno eseguite contemporaneamente. Questo parametro è un puntatore a funzione di tipo PINTERRUPTSYNCROUTINE (vedere IInterruptSync).

[in] DynamicContext

Valore di contesto da passare alla routine.

Valore restituito

CallSynchronizedRoutine restituisce STATUS_SUCCESS se la chiamata ha avuto esito positivo. In caso contrario, il metodo restituisce un codice di errore appropriato.

Osservazioni

È garantito che l'esecuzione di qualsiasi ISR registrato venga mantenuta fino al completamento della chiamata alla routine passata a CallSynchronizedRoutine.

I chiamanti di CallSynchronizedRoutine devono essere in esecuzione in un runtime di integrazione minore o uguale al livello dell'interrupt associato all'oggetto di sincronizzazione. Questo interrupt è stato specificato dal PcNewInterruptSyncResourceList e parametri di ResourceIndex.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
intestazione portcls.h (include Portcls.h)
IRQL Vedere la sezione Osservazioni.

Vedere anche

IInterruptSync

KeSynchronizeExecution

PcNewInterruptSync