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