StreamClassGetPhysicalAddress-Funktion (strmini.h)
Die StreamClassGetPhysicalAddress-Routine übersetzt eine virtuelle Speicheradresse in eine physische Speicheradresse und sperrt den entsprechenden physischen Arbeitsspeicher für einen DMA-Vorgang.
Syntax
STREAM_PHYSICAL_ADDRESS STREAMAPI StreamClassGetPhysicalAddress(
[in] PVOID HwDeviceExtension,
[in, optional] PHW_STREAM_REQUEST_BLOCK HwSRB,
[in] PVOID VirtualAddress,
[in] STREAM_BUFFER_TYPE Type,
[out] ULONG *Length
);
Parameter
[in] HwDeviceExtension
Zeiger auf die Geräteerweiterung des Minitreibers. Der Minidriver gibt die Größe dieses Puffers in der HW_INITIALIZATION_DATA-Struktur an, die er übergibt, wenn er sich über StreamClassRegisterMinidriver registriert. Der Klassentreiber übergibt dann Zeiger auf den Puffer im HwDeviceExtension-Member des HW_STREAM_REQUEST_BLOCK, HW_STREAM_OBJECT, HW_TIME_CONTEXT und PORT_CONFIGURATION_INFORMATION Strukturen, die er an den Minitreiber übergibt.
[in, optional] HwSRB
Gibt einen Streamanforderungsblock an. Dieser Parameter wird nur verwendet, wenn der Type-Parameter den Wert SRBDataBuffer aufweist, andernfalls sollte HwSRBNULL sein. Dieser Parameter ist optional.
[in] VirtualAddress
Gibt die zu übersetzende virtuelle Adresse an.
[in] Type
Gibt den Typ des Puffers an, auf den VirtualAddress verweist. Dieser Wert kann PerRequestExtension, DmaBuffer oder SRBDataBuffer sein.
[out] Length
Gibt die Länge des Puffers in Bytes an.
Rückgabewert
StreamClassGetPhysicalAddress gibt die übersetzte virtuelle Adresse als physische Speicheradresse zurück.
Hinweise
Der typ des zu verwendenden Puffers wird im Type-Parameter angegeben. Die Bedeutungen dieser Werte sind in der folgenden Tabelle dargestellt.
Puffertyp | BESCHREIBUNG |
---|---|
PerRequestExtension | Gibt die physische Adresse der SRB-Erweiterung an. |
DmaBuffer | Gibt die physische Adresse des DMA-Puffers an. |
SRBDataBuffer | Gibt die physische Adresse des Datenpuffers an. |
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | strmini.h (include Strmini.h) |
Bibliothek | Stream.lib |