共用方式為


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_BLOCKHW_STREAM_OBJECTHW_TIME_CONTEXT,以及 PORT_CONFIGURATION_INFORMATION 傳遞至迷你驅動程序的結構。

[in, optional] HwSRB

指定數據流要求區塊。 只有當 Type 參數具有 SRBDataBuffer 值時,才會使用此參數,否則 HwSRBNULL。 這個參數是選擇性的。

[in] VirtualAddress

指定要轉譯的虛擬位址。

[in] Type

指定 virtualAddress 指向的緩衝區類型。 此值可能是 PerRequestExtension、DmaBuffer 或 SRBDataBuffer。

[out] Length

指定緩衝區的長度,以位元組為單位。

傳回值

StreamClassGetPhysicalAddress 傳迴轉譯的虛擬地址作為物理記憶體位址。

言論

要使用的緩衝區類型是在 Type 參數中指定。 下表顯示這些值的意義。

緩衝區類型 描述
PerRequestExtension 指出 SRB 延伸模組的實體位址。
DmaBuffer 表示 DMA 緩衝區的實體位址。
SRBDataBuffer 表示數據緩衝區的實體位址。

要求

要求 價值
目標平臺 桌面
標頭 strmini.h (包括 Strmini.h)
連結庫 Stream.lib