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 |