VideoPortStartDma-Funktion (video.h)
Die VideoPortStartDma--Funktion bereitet das System auf einen DMA-Vorgang vor. Sobald die entsprechende Ressource verfügbar ist, erstellt VideoPortStartDma eine Punkt-/Erfassungsliste, initialisiert die Systemressourcen und ruft die videominiport-Treiber an, die HwVidExecuteDma Routine zum Ausführen des DMA-Vorgangs bereitgestellt wird.
Syntax
VIDEOPORT_DEPRECATED VIDEOPORT_API VP_STATUS VideoPortStartDma(
[in] IN PVOID HwDeviceExtension,
[in] IN PVP_DMA_ADAPTER VpDmaAdapter,
[in] IN PVOID Mdl,
[in] IN ULONG Offset,
[in, out] IN OUT PULONG pLength,
[in] IN PEXECUTE_DMA ExecuteDmaRoutine,
[in] IN PVOID Context,
[in] IN BOOLEAN WriteToDevice
);
Parameter
[in] HwDeviceExtension
Zeigen Sie auf die Geräteerweiterung des Miniporttreibers.
[in] VpDmaAdapter
Zeigen Sie auf die VP_DMA_ADAPTER Struktur, die den Busmasteradapter darstellt. Diese Struktur wird von einem Aufruf an VideoPortGetDmaAdapterzurückgegeben.
[in] Mdl
Zeigen Sie auf die MDL-, die den Puffer beschreibt. Dieser Zeiger wird von einem Aufruf an die VideoPortLockBuffer-Funktion des Videoporttreibers zurückgegeben.
[in] Offset
Gibt den Byteoffset im Puffer an, bei dem der DMA-Vorgang beginnt. Der Mdl Parameter beschreibt diesen Puffer.
[in, out] pLength
Zeigen Sie auf eine Variable, die die angeforderte Übertragungsgröße in Byte angibt und die die tatsächliche zu übertragende Größe erhält. Die Variable wird aktualisiert, wenn eines der folgenden Ereignisse auftritt: VideoPortStartDma- wird zurückgegeben oder HwVidExecuteDma- aufgerufen. Daher ist es sicher, diese Variable aus HwVidExecuteDma- zu lesen, auch bevor VideoPortStartDma zurückgegeben wird.
[in] ExecuteDmaRoutine
Zeiger auf einen vom Miniporttreiber bereitgestellten HwVidExecuteDma Rückrufroutine. VideoPortStartDma ruft diese Routine auf, um die Hardwareregister zu programmieren und den tatsächlichen DMA-Vorgang zu starten.
[in] Context
Zeiger auf den vom Treiber bestimmten Kontext, der an die HwVidExecuteDma Rückrufroutine des Miniporttreibers übergeben werden soll. Da die HwVidExecuteDma- Rückrufroutine bei DISPATCH_LEVEL ausgeführt wird, sollten die Daten, auf die Context verweist, im nicht seitenseitigen Speicher enthalten sein.
[in] WriteToDevice
Gibt die Richtung der DMA-Übertragung an. Ein Wert von TRUE eine Übertragung vom Puffer auf das Gerät und ein Wert von FALSE eine Übertragung vom Gerät zum Puffer angibt.
Rückgabewert
VideoPortStartDma gibt einen der folgenden Statuscodes zurück:
Rückgabecode | Beschreibung |
---|---|
NO_ERROR | Der Vorgang wurde erfolgreich durchgeführt. |
ERROR_NOT_ENOUGH_MEMORY | Für diesen Vorgang sind nicht genügend Systemressourcen vorhanden. |
Bemerkungen
Um sich auf einen DMA-Übertragungsvorgang vorzubereiten, VideoPortStartDma:
- Löscht den Speicherbereich im Cache des Hostprozessors.
- Erstellt eine Punkt-/Sammelliste.
- Ruft den HwVidExecuteDma Rückruf des Videominiporttreibers auf.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows XP und höheren Versionen von Windows-Betriebssystemen. |
Zielplattform- | Desktop |
Header- | video.h (video.h einschließen) |
Library | Videoprt.lib |
DLL- | Videoprt.sys |
IRQL- | <=DISPATCH_LEVEL |