Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die RevokeMappings
-Methode widerruft Zuordnungen, die zuvor über IPortWavePciStream::GetMappingabgerufen wurden.
Syntax
NTSTATUS RevokeMappings(
[in] PVOID FirstTag,
[in] PVOID LastTag,
[out] PULONG MappingsRevoked
);
Parameter
[in] FirstTag
Gibt den Tagwert an, der die erste Zuordnung identifiziert, die widerrufen wird.
[in] LastTag
Gibt den Tagwert an, der die letzte Zuordnung identifiziert, die widerrufen wird.
[out] MappingsRevoked
Ausgabezeiger für die Anzahl der widerrufenen Zuordnungen. Dieser Parameter verweist auf eine ULONG-Variable, in die die Methode die Anzahl der Zuordnungen schreibt, die tatsächlich vom Aufruf widerrufen wurden. Diese Zahl schließt alle Zuordnungen im Bereich FirstTag-LastTag- aus, die der Miniporttreiber bereits freigegeben hat. Aufgrund von Synchronisierungsproblemen können einige der Zuordnungen im Bereich zwischen dem Zeitpunkt freigegeben werden, in dem der Porttreiber die Liste der zu widerrufenden Zuordnungen und den Aufruf von RevokeMappings
bestimmt. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
Rückgabewert
RevokeMappings
gibt STATUS_SUCCESS zurück, wenn der Anruf erfolgreich war. Andernfalls gibt die Methode einen geeigneten Fehlercode zurück.
Bemerkungen
Der Porttreiber ruft RevokeMappings
auf, um die Zuordnungen des Datenstroms zu widerrufen, wenn:
- Eine E/A-Anforderung (IRP) wird abgebrochen, und der zuvor zugeordnete Speicher ist möglicherweise nicht mehr verfügbar.
- Der Datenstromstatus ändert sich in KSSTATE_STOP (siehe KSSTATE), und das Gerät benötigt die Zuordnungen nicht mehr.
RevokeMapping
-Methode widerruft alle Zuordnungen in der Sequenz, die mit der zuordnung beginnt, die durch FirstTag- identifiziert wird, und endet mit der Zuordnung, die durch LastTag-identifiziert wird. Dazu gehören die zuordnungen, die durch FirstTag- und LastTag- und alle Zuordnungen dazwischen identifiziert werden. Der Miniporttreiber widerruft jede Zuordnung, indem sie aus der Liste der verfügbaren Zuordnungen entfernt wird.
Die RevokeMapping
-Methode kann verwendet werden, um eine einzelne Zuordnung zu entfernen, indem sie FirstTag- und LastTag- auf denselben Wert festlegen.
Der Porttreiber kann RevokeMappings
asynchron in Bezug auf die Wartungsvorgänge des Miniporttreibers in der Punkt-/Sammelübertragungswarteschlange des DMA-Controllers aufrufen. Der Zugriff auf diese Warteschlange muss durch einen Synchronisierungsgrundtyp geschützt werden. Im Ac97-Beispielaudiotreiber im Microsoft Windows Driver Kit (WDK) wird dies beispielsweise durch kritische Codeabschnitte mit KeAcquireSpinLock- und KeReleaseSpinLock- Aufrufen durchgeführt. Da der Miniport-Treiber Zuordnungen im Hinblick auf die Aufrufe des Porttreibers an RevokeMappings
asynchron freigeben kann, hat der Miniporttreiber möglicherweise zuvor freigegeben (siehe IPortWavePciStream::ReleaseMapping) eine oder mehrere der im RevokeMappings
Aufruf angegebenen Zuordnungen.
Weitere Informationen zu Zuordnungen finden Sie unter WavePci Latency.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | portcls.h (include Portcls.h) |
IRQL- | DISPATCH_LEVEL |
Siehe auch
IPortWavePciStream::GetMapping