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_CONTEXT 및 PORT_CONFIGURATION_INFORMATION 구조체의 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 |