Metodo IPortWavePciStream::ReleaseMapping (portcls.h)
Il ReleaseMapping
metodo rilascia un mapping ottenuto da una chiamata precedente a IPortWavePciStream::GetMapping.
Sintassi
NTSTATUS ReleaseMapping(
[in] PVOID Tag
);
Parametri
[in] Tag
Specifica un valore di tag che identifica il mapping da rilasciare. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.
Valore restituito
ReleaseMapping
restituisce STATUS_SUCCESS se la chiamata ha avuto esito positivo. In caso contrario, il metodo restituisce un codice di errore appropriato.
Commenti
Impostare il parametro Tag sullo stesso valore di tag usato per identificare il mapping nella chiamata a IPortWavePciStream::GetMapping che ha originariamente ottenuto il mapping.
Il driver miniport deve tenere traccia dell'ordine in cui acquisisce i mapping dalle chiamate a IPortWavePciStream::GetMapping e deve rilasciare i mapping nello stesso ordine.
Per evitare potenziali deadlock, il driver miniport deve evitare di tenere premuto un blocco di rotazione durante la chiamata a ReleaseMapping
. Vedere il driver audio di esempio ac97 in Microsoft Windows Driver Kit (WDK) per un esempio di codice che usa un blocco spin per serializzare gli accessi a strutture di dati condivise e periferiche in un sistema multiprocessore. Il codice di esempio chiama KeReleaseSpinLock prima di chiamare e chiamare ReleaseMapping
KeAcquireSpinLock dopo aver chiamato ReleaseMapping
. Tra le chiamate per rilasciare e acquisire il blocco di rotazione, il thread del driver non deve presupporre che abbia accesso esclusivo ai dati o alle periferiche protette dal blocco di rotazione. Lo strumento Driver Verifier (vedere la descrizione di questo strumento nel sito Web Driver Verifier ) verifica la presenza di blocchi di rotazione attivi durante le chiamate a ReleaseMapping
; se ne rileva uno, genera un controllo di bug 0xC4 (rilevamento deadlock).
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | portcls.h (include Portcls.h) |
IRQL | <=DISPATCH_LEVEL |
Vedi anche
IMiniportWavePciStream::RevokeMappings