struttura KS_FRAMING_ITEM (ks.h)
La struttura KS_FRAMING_ITEM viene usata per dichiarare i requisiti dell'allocatore in un pin in modalità kernel.
Sintassi
typedef struct {
GUID MemoryType;
GUID BusType;
ULONG MemoryFlags;
ULONG BusFlags;
ULONG Flags;
ULONG Frames;
union {
ULONG FileAlignment;
LONG FramePitch;
};
ULONG MemoryTypeWeight;
KS_FRAMING_RANGE PhysicalRange;
KS_FRAMING_RANGE_WEIGHTED FramingRange;
} KS_FRAMING_ITEM, *PKS_FRAMING_ITEM;
Membri
MemoryType
Specifica il tipo di memoria utilizzata per buffer e frame di dati. Esiste una corrispondenza parziale tra questo membro e il membro poolType nella struttura KSALLOCATOR_FRAMING. I due membri differiscono in quanto PoolType consente solo il pool di paging o non di paging. MemoryType può contenere uno qualsiasi dei valori elencati nella tabella seguente.
Valore | Descrizione |
---|---|
KSMEMORY_TYPE_WILDCARD/KSMEMORY_TYPE_DONT_CARE/KSTYPE_DONT_CARE | Indica che l'allocazione di memoria può essere qualsiasi tipo di memoria. |
KSMEMORY_TYPE_SYSTEM | Indica che l'allocazione di memoria deve essere memoria di sistema. |
KSMEMORY_TYPE_USER | Indica che l'allocazione di memoria deve essere in modalità utente. |
KSMEMORY_TYPE_KERNEL_PAGED | Indica che l'allocazione di memoria deve essere memoria di paging del kernel. Corrisponde al membro PoolType della struttura KSALLOCATOR_FRAMING impostata su PagedPool e al membro RequirementsFlags di di questa struttura impostata su SYSTEM_MEMORY. |
KSMEMORY_TYPE_KERNEL_NONPAGED | Indica che l'allocazione di memoria deve essere memoria non di paging del kernel. Corrisponde al membro PoolType della struttura di KSALLOCATOR_FRAMING impostata su NonPagedPool e sul membro RequirementsFlags di questa struttura impostata su SYSTEM_MEMORY. |
KSMEMORY_TYPE_DEVICE_UNKNOWN | Indica che il tipo di allocazione della memoria del dispositivo non è specificato. |
BusType
Specifica il bus fisico che accede alla memoria fisica specificata da MemoryType. Utilizzare questo campo per determinare un tipo di memoria compatibile basato sul bus utilizzato per il supporto di connessione. Questa distinzione è fondamentale quando un pin espone tipi di memoria diversi in base al supporto di connessione. BusType può avere uno qualsiasi dei valori elencati nella tabella seguente.
Digitare | Descrizione |
---|---|
GUID_BUS_TYPE_PCI | Bus di interconnessione dei componenti periferici. |
GUID_BUS_TYPE_USB | Bus seriale universale. |
GUID_BUS_TYPE_1394 | Bus seriale IEEE 1394. |
GUID_BUS_TYPE_AVC | Bus di controllo audio/video. |
GUID_61883_CLASS | Bus di protocollo 61883. |
MemoryFlags
Specifica che il punto di connessione è responsabile dell'allocazione dei frame. Deve essere impostato su KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE.
BusFlags
Non utilizzato.
Flags
Analogamente al OptionsFlags e RequirementsFlags unione nella struttura KSALLOCATOR_FRAMING, con l'aggiunta dei flag che aggiungono il supporto per le pipe.
Frames
Specifica il numero totale di fotogrammi in sospeso consentiti. Corrisponde al membro frame della struttura KSALLOCATOR_FRAMING.
FileAlignment
Requisito per l'allineamento dei fotogrammi. Corrisponde al membro FileAlignment della struttura KSALLOCATOR_FRAMING.
FramePitch
Definisce il membro LONGFramePitch.
MemoryTypeWeight
Valore di tipo ULONG che specifica il peso a livello di pin di questo tipo di memoria.
PhysicalRange
Struttura di tipo KS_FRAMING_RANGE che specifica il limite fisico delle dimensioni dei fotogrammi.
FramingRange
Struttura di tipo KS_FRAMING_RANGE_WEIGHTED che specifica l'intervallo ottimale di dimensioni dei fotogrammi.
Osservazioni
Non impostare KSALLOCATOR_FLAG_CAN_ALLOCATE per indicare la funzionalità di indirizzamento della memoria. Un filtro potrebbe essere in grado di accedere alla memoria specifica del dispositivo su un bus specifico del dispositivo facendo riferimento all'indirizzo di memoria in questo bus e non supporta ancora il protocollo per allocare la memoria specifica del dispositivo.
Ogni istanza di KSALLOCATOR_FRAMING_EX contiene uno o più elementi di frame.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | ks.h (include Ks.h) |