Méthode IPortWavePciStream ::ReleaseMapping (portcls.h)
La ReleaseMapping
méthode libère un mappage obtenu par un appel précédent à IPortWavePciStream ::GetMapping.
Syntaxe
NTSTATUS ReleaseMapping(
[in] PVOID Tag
);
Paramètres
[in] Tag
Spécifie une valeur d’étiquette identifiant le mappage à libérer. Pour plus d'informations, consultez la section Notes qui suit.
Valeur retournée
ReleaseMapping
retourne STATUS_SUCCESS si l’appel a réussi. Sinon, la méthode retourne un code d’erreur approprié.
Remarques
Définissez le paramètre Tag sur la même valeur de balise que celle que vous avez utilisée pour identifier le mappage dans l’appel à IPortWavePciStream ::GetMapping qui a obtenu le mappage à l’origine.
Le pilote miniport doit suivre l’ordre dans lequel il acquiert ses mappages à partir des appels à IPortWavePciStream ::GetMapping, et il doit libérer les mappages dans le même ordre.
Pour éviter les blocages potentiels, le pilote miniport doit éviter de tenir un verrou de rotation pendant son appel à ReleaseMapping
. Consultez l’exemple de pilote audio ac97 dans microsoft Windows Driver Kit (WDK) pour obtenir un exemple de code qui utilise un verrou de rotation pour sérialiser les accès aux structures de données partagées et aux périphériques dans un système multiprocesseur. L’exemple de code appelle KeReleaseSpinLock avant d’appeler ReleaseMapping
et appelle KeAcquireSpinLock après l’appel ReleaseMapping
de . Entre les appels à libérer et à acquérir le verrou de rotation, le thread de pilote ne doit pas supposer qu’il dispose d’un accès exclusif aux données ou aux périphériques qui sont gardés par le verrou de rotation. L’outil Driver Verifier (voir la description de cet outil sur le site web Driver Verifier) recherche les verrous de rotation actifs pendant les appels à ReleaseMapping
; s’il en détecte un, il génère un bogue 0xC4 (détection d’interblocage) case activée.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | portcls.h (include Portcls.h) |
IRQL | <=DISPATCH_LEVEL |
Voir aussi
IMiniportWavePciStream ::RevokeMappings