struttura KSALLOCATOR_FRAMING (ks.h)

La struttura KSALLOCATOR_FRAMING viene usata per eseguire query sui requisiti di frame e inviare richieste di creazione dell'allocatore.

Sintassi

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;

Members

OptionsFlags

Specifica i flag di opzione dell'allocatore specificati durante la creazione dell'allocatore per il punto di connessione. Il membro OptionsFlags può contenere uno dei valori seguenti.

OpzioniFlags Descrizione
KSALLOCATOR_OPTIONF_COMPATIBLE Indica che le opzioni di frame dell'allocatore creato sono compatibili con l'allocatore downstream. Questa opzione viene in genere specificata quando a un modificatore sul posto viene assegnato un allocatore per i buffer di copia. Se il filtro non è necessario per modificare un determinato frame, può inviare il frame al filtro downstream senza allocare un frame aggiuntivo dall'allocatore downstream quando questa opzione viene specificata.
KSALLOCATOR_OPTIONF_SYSTEM_MEMORY Indica che la memoria di sistema deve essere utilizzata per le allocazioni. Se specificato, l'allocatore deve allocare memoria dal pool come specificato nel membro PoolType . In caso contrario, si presuppone che il sink fornisca un mapping degli indirizzi di sistema alla RAM su scheda o ad altre forme di archiviazione nel dispositivo.

RequirementsFlags

Valore di tipo ULONG che descrive i requisiti dell'allocatore per questo punto di connessione per le operazioni di query. Il membro RequirementsFlags può contenere i valori seguenti.

Valore flag Descrizione
KSALLOCATOR_REQUIREMENTF_INPLACE_MODIFIER Indica che il punto di connessione può eseguire una modifica sul posto.
KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY Indica che il punto di connessione richiede memoria di sistema per le allocazioni. Se questa opzione non è impostata, si presuppone che il sink fornisca un mapping dello spazio di indirizzi di sistema alla RAM su scheda o ad altre forme di archiviazione nel dispositivo.
KSALLOCATOR_REQUIREMENTF_FRAME_INTEGRITY Indica che il punto di connessione richiede che i filtri downstream mantengano l'integrità dei dati dei frame specificati.
KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE Indica che il punto di connessione richiede che alloca tutti i frame inviati.
KSALLOCATOR_REQUIREMENTF_PREFERENCES_ONLY Indica che i flag Requisiti sono solo preferenze e il punto di connessione è in grado di allocare frame che non soddisfano tali specifiche.

PoolType

Struttura di tipo POOL_TYPE che specifica il tipo di pool di allocazione in modalità kernel.

Frames

Specifica il numero totale di fotogrammi in sospeso consentiti. Zero indica che il filtro non ha requisiti per questo membro.

FrameSize

Specifica la dimensione totale del frame, incluso il prefisso e il prefisso. Zero indica che il filtro non ha requisiti per questo membro.

FileAlignment

Valore di tipo ULONG che descrive l'allineamento dei byte da utilizzare per l'allocazione di frame. Nella tabella seguente vengono descritti diversi valori di allineamento possibili.

Valore Descrizione
FILE_BYTE_ALIGNMENT Allineamento a 1 byte
FILE_WORD_ALIGNMENT Allineamento a 2 byte
FILE_LONG_ALIGNMENT Allineamento a 4 byte
FILE_32_BYTE_ALIGNMENT Allineamento a 32 byte
FILE_64_BYTE_ALIGNMENT Allineamento a 64 byte

FramePitch

Reserved

Riservato per l'utilizzo nel sistema. Imposta su zero.

Commenti

Usare KSALLOCATOR_FRAMING per inviare una richiesta di creazione dell'allocatore a un handle di un sink usando IRP_MJ_CREATE.

Quando si specifica un valore per il membro FileAlignment , l'allineamento di allocazione più piccolo è di 1 byte (FILE_BYTE_ALIGNMENT). Se possibile, il software che funziona come allocazione deve supportare l'allineamento a 4 byte (FILE_LONG_ALIGNMENT).

Requisiti

Requisito Valore
Intestazione ks.h (include Ks.h)

Vedi anche

KsCreateAllocator