다음을 통해 공유


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

미니 드라이버의 디바이스 확장에 대한 포인터입니다. 미니 드라이버는 StreamClassRegisterMinidriver를 통해 자신을 등록할 때 통과하는 HW_INITIALIZATION_DATA 구조에서 이 버퍼의 크기를 지정합니다. 그런 다음 클래스 드라이버는 미니드라이버에 전달하는 HW_STREAM_REQUEST_BLOCK, HW_STREAM_OBJECT, HW_TIME_CONTEXTPORT_CONFIGURATION_INFORMATION 구조체의 HwDeviceExtension 멤버에 있는 버퍼에 포인터를 전달합니다.

[in, optional] HwSRB

스트림 요청 블록을 지정합니다. 이 매개 변수는 Type 매개 변수에 SRBDataBuffer 값이 있는 경우에만 사용되며, 그렇지 않으면 HwSRBNULL이어야 합니다. 이 매개 변수는 선택적 요소입니다.

[in] VirtualAddress

번역할 가상 주소를 지정합니다.

[in] Type

VirtualAddress가 가리키는 버퍼 유형을 지정합니다. 이 값은 PerRequestExtension, DmaBuffer 또는 SRBDataBuffer일 수 있습니다.

[out] Length

버퍼의 길이(바이트)를 지정합니다.

반환 값

StreamClassGetPhysicalAddress 는 변환된 가상 주소를 실제 메모리 주소로 반환합니다.

설명

사용할 버퍼의 형식은 Type 매개 변수에 지정됩니다. 이러한 값의 의미는 다음 표에 나와 있습니다.

버퍼 유형 Description
PerRequestExtension SRB 확장의 실제 주소를 나타냅니다.
DmaBuffer DMA 버퍼의 실제 주소를 나타냅니다.
SRBDataBuffer 데이터 버퍼의 실제 주소를 나타냅니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 strmini.h(Strmini.h 포함)
라이브러리 Stream.lib