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