StreamClassGetPhysicalAddress 函式 (strmini.h)
StreamClassGetPhysicalAddress 例程會將虛擬記憶體位址轉譯為實體記憶體位址,並鎖定 DMA 作業的對應實體記憶體。
語法
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
);
參數
[in] HwDeviceExtension
迷你驅動程式裝置延伸模組的指標。 minidriver 會指定此緩衝區在透過 StreamClassRegisterMinidriver 註冊本身時所傳遞的HW_INITIALIZATION_DATA結構大小。 然後,類別驅動程式會將指標傳遞至HW_STREAM_REQUEST_BLOCK、HW_STREAM_OBJECT、HW_TIME_CONTEXT,以及PORT_CONFIGURATION_INFORMATION傳遞至minidriver的 HwDeviceExtension 成員中的緩衝區。
[in, optional] HwSRB
指定數據流要求區塊。 只有在 Type 參數具有 SRBDataBuffer 值時,才會使用此參數,否則 HwSRB 應該是 NULL。 這是選擇性參數。
[in] VirtualAddress
指定要翻譯的虛擬位址。
[in] Type
指定 VirtualAddress 所指向的緩衝區類型。 此值可以是 PerRequestExtension、DmaBuffer 或 SRBDataBuffer。
[out] Length
指定緩衝區的長度,以位元組為單位。
傳回值
StreamClassGetPhysicalAddress 會將轉譯的虛擬位址傳回為實體記憶體位址。
備註
要使用的緩衝區類型是在 Type 參數中指定。 下表顯示這些值的意義。
緩衝區類型 | Description |
---|---|
PerRequestExtension | 指出 SRB 延伸模組的實體位址。 |
DmaBuffer | 指出 DMA 緩衝區的實體位址。 |
SRBDataBuffer | 指出數據緩衝區的實體位址。 |
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | strmini.h (包含 Strmini.h) |
程式庫 | Stream.lib |