共用方式為


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_OBJECTHW_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