KsDeviceRegisterAdapterObject 함수(ks.h)
KsDeviceRegisterAdapterObject 함수는 지정된 디바이스에서 분산/수집 DMA를 수행하기 위해 AVStream에 DMA 어댑터 개체를 등록합니다. Win64용으로 컴파일된 모든 드라이버는 대신 IKsDeviceFunctions::RegisterAdapterObjectEx 를 사용해야 합니다.
구문
void KsDeviceRegisterAdapterObject(
[in] PKSDEVICE Device,
[in] PADAPTER_OBJECT AdapterObject,
[in] ULONG MaxMappingsByteCount,
[in] ULONG MappingTableStride
);
매개 변수
[in] Device
어댑터 개체를 등록할 AVStream 디바이스를 나타내는 KSDEVICE 구조체에 대한 포인터입니다.
[in] AdapterObject
DMA 컨트롤러를 나타내는 IoGetDmaAdapter에서 반환된 DMA_ADAPTER 구조체에 대한 포인터입니다.
[in] MaxMappingsByteCount
이 매개 변수는 디바이스가 단일 매핑에 대해 처리할 수 있는 최대 바이트 수를 지정합니다. AVStream은 DMA 전송에서 개별 매핑에 크기 제한을 적용하는 디바이스에 대해 연속된 물리적 메모리의 큰 청크를 여러 분산/수집 요소로 자동으로 분할할 수 있습니다. 페이지 경계에서 중단이 발생하도록 보장되지 않습니다.
[in] MappingTableStride
이 매개 변수는 매핑 테이블의 각 항목에 필요한 바이트 수를 지정합니다. 이는 최소한 sizeof (KSMAPPING)여야 하며 필요한 만큼 커질 수 있습니다.
미니드라이버에서 컨텍스트 정보로 추가 공간을 사용할 수 있습니다.
반환 값
없음
설명
KsDeviceRegisterAdapterObject를 호출하는 미니 드라이버는 이전에 IoGetDmaAdapter를 통해 어댑터 개체를 획득하는 작업을 담당합니다.
또한 미니드라이버가 디바이스의 모든 필터에서 핀에 대한 KSPIN_FLAG_GENERATE_MAPPINGS 플래그를 지정하는 경우 미니 드라이버는 데이터를 처리하기 전에 KsDeviceRegisterAdapterObject 를 호출해야 합니다. 이 플래그에 대한 자세한 내용은 KSPIN_DESCRIPTOR_EX 참조 페이지에서 찾을 수 있습니다. AVStream DMA 서비스도 참조하세요.
MaxMappingByteCount를 하나의 실제 페이지 길이로 설정하는 경우 매핑이 단일 실제 페이지에 상주하도록 보장되지 않습니다. 또한 위의 멤버 설명에 설명된 대로 MaxMappingsByteCount 를 설정해도 페이지 경계에서 중단이 발생한다는 보장은 없습니다. 페이지 경계에 중단이 필요한 경우 매핑 크기에 제한을 지정하지 않는 것이 좋습니다. 대신 반환된 분산/수집 매핑을 페이지 정렬 청크로 수동으로 분할합니다.
또한 64비트 AVStream 드라이버에서 DMA 지원을 참조하세요.
요구 사항
대상 플랫폼 | 유니버설 |
헤더 | ks.h(Ks.h 포함) |
라이브러리 | Ks.lib |
IRQL | PASSIVE_LEVEL |