Asignadores KS
Un asignador es un objeto KS que crea instancias de búferes de datos denominados marcos para solicitudes de E/S. Un marco es un fragmento de memoria continua, cuyo tamaño se especifica por el proveedor a través del miembro AllocatorFraming de KSPIN_DESCRIPTOR_EX.
Los minidrivers pueden admitir asignadores para varios tipos de búfer, por ejemplo, ram incorporada en una tarjeta de vídeo. Sin embargo, la mayoría de los minidrivers usan el asignador predeterminado para asignar memoria del sistema. Los minidrivers pueden especificar el tamaño del marco, el número máximo de fotogramas y los requisitos de alineación. El asignador predeterminado se encarga de cumplir los requisitos y puede optimizar el rendimiento mediante la reutilización de fotogramas descartados.
Un minidriver crea un asignador llamando a la rutina KsCreateAllocator o funciones relacionadas. En esta llamada, el minidriver pasa un puntero a una estructura de KSALLOCATOR_FRAMING . Esta estructura contiene parámetros que describen el asignador solicitado.
En el modelo de clase de secuencia, los minidrivers que crean asignadores admiten la propiedad KSPROPERTY_CONNECTION_ALLOCATORFRAMING . Se trata de una solicitud de solo lectura que devuelve un puntero a la estructura de KSALLOCATOR_FRAMING pertinente para el identificador de receptor especificado.
Los minidrivers que proporcionan asignadores también deben admitir la propiedad KSPROPERTY_STREAM_ALLOCATOR . Esta propiedad proporciona acceso de lectura y escritura al identificador del asignador asignado actualmente al punto de conexión de secuencia.
Los minidrivers que se ejecutan en AVStream pueden incluir patillas que implementan sus propios asignadores. Para ello, establezca el miembro KSALLOCATOR_DISPATCH de la estructura KSPIN_DISPATCH . Especifique NULL para este miembro si no desea especificar un asignador para este pin.
Además, los minidrives AVStream usan la estructura KSALLOCATOR_FRAMING_EX para especificar los requisitos del asignador. A continuación, los clientes usan la propiedad KSPROPERTY_CONNECTION_ALLOCATORFRAMING_EX para recuperar los requisitos de marco de un pin. Consulte AvStream Allocators (Asignadores de AVStream ) para obtener más información.
Esta sección contiene la siguiente información adicional: