Compartir a través de


KSALLOCATOR_FRAMING estructura (ks.h)

La estructura KSALLOCATOR_FRAMING se usa para consultar los requisitos de marco y enviar solicitudes de creación de asignador.

Sintaxis

typedef struct {
  union {
    ULONG OptionsFlags;
    ULONG RequirementsFlags;
  };
#if ...
  POOL_TYPE PoolType;
#else
  ULONG     PoolType;
#endif
  ULONG     Frames;
  ULONG     FrameSize;
  union {
    ULONG FileAlignment;
    LONG  FramePitch;
  };
  ULONG     Reserved;
} KSALLOCATOR_FRAMING, *PKSALLOCATOR_FRAMING;

Miembros

OptionsFlags

Especifica las marcas de opción de asignador especificadas durante la creación del asignador para el punto de conexión. El miembro OptionsFlags puede contener uno de los valores siguientes.

OpcionesFlags Descripción
KSALLOCATOR_OPTIONF_COMPATIBLE Indica que las opciones de marco del asignador que se va a crear son compatibles con el asignador de bajada. Esta opción se especifica normalmente cuando se asigna un modificador en contexto a un asignador para los búferes de copia. Si el filtro no es necesario para modificar un marco determinado, puede enviar el marco al filtro de nivel inferior sin asignar un marco adicional desde el asignador de nivel inferior cuando se especifica esta opción.
KSALLOCATOR_OPTIONF_SYSTEM_MEMORY Indica que se debe usar la memoria del sistema para las asignaciones. Cuando se especifica, el asignador debe asignar memoria del grupo tal y como se especifica en el miembro PoolType . De lo contrario, se supone que el receptor proporciona una asignación de direcciones del sistema a la RAM incorporada u otras formas de almacenamiento en el dispositivo.

RequirementsFlags

Valor de tipo ULONG que describe los requisitos del asignador para este punto de conexión para las operaciones de consulta. El miembro RequirementsFlags puede contener los valores siguientes.

Valor de marca Descripción
KSALLOCATOR_REQUIREMENTF_INPLACE_MODIFIER Indica que el punto de conexión puede realizar una modificación local.
KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY Indica que el punto de conexión requiere memoria del sistema para las asignaciones. Si no se establece esta opción, se supone que el receptor proporciona una asignación de espacio de direcciones del sistema a la RAM incorporada u otras formas de almacenamiento en el dispositivo.
KSALLOCATOR_REQUIREMENTF_FRAME_INTEGRITY Indica que el punto de conexión requiere que los filtros de nivel inferior mantengan la integridad de los datos de los marcos especificados.
KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE Indica que el punto de conexión requiere que asigne los fotogramas enviados.
KSALLOCATOR_REQUIREMENTF_PREFERENCES_ONLY Indica que las marcas Requirements son solo preferencias y el punto de conexión puede asignar fotogramas que no cumplan esas especificaciones.

PoolType

Estructura de tipo POOL_TYPE que especifica el tipo de grupo de asignación en modo kernel.

Frames

Especifica el número total de fotogramas pendientes permitidos. Cero indica que el filtro no tiene ningún requisito para este miembro.

FrameSize

Especifica el tamaño total del marco, incluido el prefijo y el postfijo. Cero indica que el filtro no tiene ningún requisito para este miembro.

FileAlignment

Valor de tipo ULONG que describe la alineación de bytes que se va a usar al asignar fotogramas. En la tabla siguiente se describen varios valores de alineación posibles.

Valor Descripción
FILE_BYTE_ALIGNMENT Alineación de 1 byte
FILE_WORD_ALIGNMENT Alineación de 2 bytes
FILE_LONG_ALIGNMENT Alineación de 4 bytes
FILE_32_BYTE_ALIGNMENT Alineación de 32 bytes
FILE_64_BYTE_ALIGNMENT Alineación de 64 bytes

FramePitch

Reserved

Reservado para uso del sistema. Establecer en cero.

Comentarios

Use KSALLOCATOR_FRAMING para enviar una solicitud de creación de asignador a un identificador de un receptor mediante IRP_MJ_CREATE.

Cuando se especifica un valor para el miembro FileAlignment , la alineación de asignación más pequeña es de 1 byte (FILE_BYTE_ALIGNMENT). El software que funciona como asignación debe admitir la alineación de 4 bytes (FILE_LONG_ALIGNMENT), si es posible.

Requisitos

Requisito Valor
Header ks.h (incluye Ks.h)

Consulte también

KsCreateAllocator