Funzione StorPortSynchronizeAccess (storport.h)
La routine StorPortSynchronizeAccess consente l'accesso sincronizzato all'estensione del dispositivo di un driver miniport.
Sintassi
STORPORT_API BOOLEAN StorPortSynchronizeAccess(
[in] PVOID HwDeviceExtension,
[in] PSTOR_SYNCHRONIZED_ACCESS SynchronizedAccessRoutine,
[in, optional] PVOID Context
);
Parametri
[in] HwDeviceExtension
Puntatore all'estensione del dispositivo hardware. Si tratta di un'area di archiviazione per hba che il driver di porta alloca e inizializza per conto del driver miniport. I driver Miniport archivia in genere informazioni specifiche di HBA in questa estensione, ad esempio lo stato dell'HBA e gli intervalli di accesso mappati per l'HBA. Questa area è disponibile per il driver miniport subito dopo che il driver miniport chiama StorPortInitialize. Il driver della porta libera questa memoria quando rimuove il dispositivo.
[in] SynchronizedAccessRoutine
Puntatore a una routine fornita dal chiamante la cui esecuzione deve essere sincronizzata con l'esecuzione dell'ISR associato agli oggetti interrupt. Per un prototipo di questa routine, vedere la sezione Osservazioni più avanti in questo argomento.
[in, optional] Context
Puntatore a un'area di contesto da passare alla routine di callback fornita dal chiamante quando viene chiamata.
Valore restituito
Valore restituito da SynchronizedAccessRoutine.
Osservazioni
I driver Miniport che operano in modalità full-duplex e che accedono alle informazioni condivise tra HwStorStartIo routine e interrupt-service routine devono usare questa routine per accedere ai dati condivisi in modo sincronizzato.
Il driver miniport passa una routine di callback a StorPortSynchronizeAccesse StorPortSynchronizeAccess lo chiama dopo aver garantito l'accesso esclusivo alle strutture di dati sensibili. La routine di callback del driver miniport deve essere conforme al prototipo seguente:
typedef
BOOLEAN
(* PSTOR_SYNCHRONIZED_ACCESS) (
IN PVOID HwDeviceExtension,
IN PVOID Context
);
dove HwDeviceExtension è un puntatore all'estensione del dispositivo hardware e Context è semplicemente un puntatore alle stesse informazioni di contesto fornite dal chiamante quando si chiama StorPortSynchronizeAccess.
Per altre informazioni, vedere Accesso sincronizzato all'interno di routine del driver miniport non sincronizzate.
Per altre informazioni sulle routine di sincronizzazione, vedere KeSynchronizeExecution.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
intestazione | storport.h (include Storport.h) |
libreria | Storport.lib |