KS_FRAMING_ITEM struttura (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;
Members
MemoryType
Specifica il tipo di memoria utilizzato per i buffer e i frame di dati. Esiste una corrispondenza parziale tra questo membro e il membro PoolType nella struttura KSALLOCATOR_FRAMING . I due membri differiscono in tale PoolType consente solo pool di pagine o non a pagine. MemoryType può avere uno dei valori elencati nella tabella seguente.
Valore | Descrizione |
---|---|
KSMEMORY_TYPE_WILDCARD/KSMEMORY_TYPE_DONT_CARE/KSTYPE_DONT_CARE | Indica che l'allocazione della memoria può essere qualsiasi tipo di memoria. |
KSMEMORY_TYPE_SYSTEM | Indica che l'allocazione della memoria deve essere memoria di sistema. |
KSMEMORY_TYPE_USER | Indica che l'allocazione della memoria deve essere memoria in modalità utente. |
KSMEMORY_TYPE_KERNEL_PAGED | Indica che l'allocazione della memoria deve essere memoria a pagina del kernel. Corrisponde al membro PoolType della struttura KSALLOCATOR_FRAMING impostata su PagedPool e il membro RequirementsFlags di questa struttura impostata su SYSTEM_MEMORY. |
KSMEMORY_TYPE_KERNEL_NONPAGED | Indica che l'allocazione della memoria deve essere memoria non impaginata. Corrisponde al membro PoolType della struttura KSALLOCATOR_FRAMING impostata su NonPagedPool e il membro RequirementsFlags di questa struttura impostato 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. Usare questo campo per determinare un tipo di memoria compatibile in base al bus usato per il supporto di connessione. Questa distinzione è fondamentale quando un pin espone diversi tipi di memoria in base al supporto di connessione. BusType può avere uno dei valori elencati nella tabella seguente.
Tipo | Descrizione |
---|---|
GUID_BUS_TYPE_PCI | Bus di interconnessione del componente periferico. |
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 usato.
Flags
Analogamente all'unione OptionsFlags e RequirementsFlags nella struttura KSALLOCATOR_FRAMING, con l'aggiunta dei flag che aggiungono supporto per 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 framepitch del membro LONG.
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 del frame.
FramingRange
Struttura di tipo KS_FRAMING_RANGE_WEIGHTED che specifica l'intervallo ottimale di dimensioni del fotogramma.
Commenti
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 ancora non supporta il protocollo per allocare la memoria specifica del dispositivo.
Ogni KSALLOCATOR_FRAMING_EX istanza contiene uno o più elementi di frame.
Requisiti
Requisito | Valore |
---|---|
Intestazione | ks.h (include Ks.h) |