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

추가 정보

IoGetDmaAdapter

KSFILTER_DESCRIPTOR

KSMAPPING

KSPIN_DESCRIPTOR_EX