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;
Membri
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 usata 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 alcun requisito per questo membro.
FrameSize
Specifica le dimensioni totali del frame, incluso il prefisso e il prefisso. Zero indica che il filtro non ha alcun requisito 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'uso del sistema. Impostare su zero.
Osservazioni
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 è 1 byte (FILE_BYTE_ALIGNMENT). Il software che funziona come allocazione deve supportare l'allineamento a 4 byte (FILE_LONG_ALIGNMENT), se possibile.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | ks.h (include Ks.h) |