Función KsDeviceRegisterAdapterObject (ks.h)

La función KsDeviceRegisterAdapterObject registra un objeto de adaptador DMA con AVStream para realizar la dispersión o recopilación de DMA en el dispositivo especificado. Todos los controladores compilados para Win64 deben usar IKsDeviceFunctions::RegisterAdapterObjectEx en su lugar.

Sintaxis

void KsDeviceRegisterAdapterObject(
  [in] PKSDEVICE       Device,
  [in] PADAPTER_OBJECT AdapterObject,
  [in] ULONG           MaxMappingsByteCount,
  [in] ULONG           MappingTableStride
);

Parámetros

[in] Device

Puntero a la estructura KSDEVICE que representa el dispositivo AVStream para el que se va a registrar un objeto de adaptador.

[in] AdapterObject

Puntero a la estructura DMA_ADAPTER devuelta por IoGetDmaAdapter que representa el controlador DMA.

[in] MaxMappingsByteCount

Este parámetro especifica el número máximo de bytes que el dispositivo puede controlar para una sola asignación. Permite a AVStream dividir automáticamente grandes fragmentos de memoria física contigua en varios elementos de dispersión o recopilación para dispositivos que imponen un límite de tamaño en asignaciones individuales en transferencias DMA. No se garantiza que se produzcan saltos en los límites de página.

[in] MappingTableStride

Este parámetro especifica cuántos bytes requiere cada entrada de la tabla de asignación. Debe ser al menos sizeof (KSMAPPING) y puede ser tan grande como sea necesario.

El minidriver puede usar espacio adicional como información de contexto.

Valor devuelto

None

Observaciones

Un minidriver que llama a KsDeviceRegisterAdapterObject es responsable de adquirir previamente el objeto de adaptador a través de IoGetDmaAdapter.

Tenga en cuenta también que si el minidriver especifica la marca KSPIN_FLAG_GENERATE_MAPPINGS para cualquier pin en cualquier filtro del dispositivo, el minidriver debe llamar a KsDeviceRegisterAdapterObject antes de procesar los datos. Puede encontrar más información sobre esta marca en la página de referencia de KSPIN_DESCRIPTOR_EX. Consulte también AVStream DMA Services.

Si establece MaxMappingByteCount en una página física de longitud, no se garantiza que las asignaciones residan en una sola página física. Además, como se indicó en la descripción del miembro anterior, establecer MaxMappingsByteCount no garantiza que los saltos se produzcan en los límites de página. Si necesita saltos en los límites de página, considere la posibilidad de no especificar un límite en los tamaños de asignación; en su lugar, divida las asignaciones de dispersión y recopilación devueltas en fragmentos alineados con páginas manualmente.

Consulte también Compatibilidad con DMA en controladores AVStream de 64 bits.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado ks.h (incluye Ks.h)
Library Ks.lib
IRQL PASSIVE_LEVEL

Consulte también

IoGetDmaAdapter

KSFILTER_DESCRIPTOR

KSMAPPING

KSPIN_DESCRIPTOR_EX