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 結構中傳遞的這個緩衝區大小。 然後,類別驅動程式會將指標傳遞至 HwDeviceExtension 中HW_STREAM_REQUEST_BLOCK、HW_STREAM_OBJECT、HW_TIME_CONTEXT,以及 PORT_CONFIGURATION_INFORMATION 傳遞至迷你驅動程序的結構。
[in, optional] HwSRB
指定數據流要求區塊。 只有當 Type 參數具有 SRBDataBuffer 值時,才會使用此參數,否則 HwSRB 應 NULL。 這個參數是選擇性的。
[in] VirtualAddress
指定要轉譯的虛擬位址。
[in] Type
指定 virtualAddress 指向的緩衝區類型。 此值可能是 PerRequestExtension、DmaBuffer 或 SRBDataBuffer。
[out] Length
指定緩衝區的長度,以位元組為單位。
傳回值
StreamClassGetPhysicalAddress 傳迴轉譯的虛擬地址作為物理記憶體位址。
言論
要使用的緩衝區類型是在 Type 參數中指定。 下表顯示這些值的意義。
緩衝區類型 | 描述 |
---|---|
PerRequestExtension | 指出 SRB 延伸模組的實體位址。 |
DmaBuffer | 表示 DMA 緩衝區的實體位址。 |
SRBDataBuffer | 表示數據緩衝區的實體位址。 |
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | strmini.h (包括 Strmini.h) |
連結庫 | Stream.lib |