KS_FRAMING_ITEM-Struktur (ks.h)
Die KS_FRAMING_ITEM-Struktur wird verwendet, um Zuordnungsanforderungen für einen Kernelmodus-Pin zu deklarieren.
Syntax
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;
Member
MemoryType
Gibt den Typ des Arbeitsspeichers an, der für Puffer und Datenrahmen verwendet wird. Zwischen diesem Member und dem PoolType-Element in der KSALLOCATOR_FRAMING-Struktur besteht eine teilweise Übereinstimmung. Die beiden Member unterscheiden sich darin, dass PoolType nur ausgelagerte oder nicht ausgelagerte Pools zulässt. MemoryType kann über einen der in der folgenden Tabelle aufgeführten Werte verfügen.
Wert | BESCHREIBUNG |
---|---|
KSMEMORY_TYPE_WILDCARD / KSMEMORY_TYPE_DONT_CARE / KSTYPE_DONT_CARE | Gibt an, dass es sich bei der Speicherzuordnung um einen beliebigen Speichertyp handeln kann. |
KSMEMORY_TYPE_SYSTEM | Gibt an, dass die Speicherzuordnung Systemspeicher sein muss. |
KSMEMORY_TYPE_USER | Gibt an, dass die Speicherzuordnung im Benutzermodus Arbeitsspeicher sein muss. |
KSMEMORY_TYPE_KERNEL_PAGED | Gibt an, dass die Speicherzuordnung ausgelagerter Kernelspeicher sein muss. Dies entspricht dem PoolType-Element der KSALLOCATOR_FRAMING Struktur, die auf PagedPool festgelegt ist, und dem RequirementsFlags-Element dieser Struktur, das auf SYSTEM_MEMORY festgelegt ist. |
KSMEMORY_TYPE_KERNEL_NONPAGED | Gibt an, dass die Speicherzuordnung nicht aus dem Kernel stammender Arbeitsspeicher sein muss. Dies entspricht dem PoolType-Member der KSALLOCATOR_FRAMING Struktur, die auf NonPagedPool festgelegt ist, und dem RequirementsFlags-Element dieser Struktur, das auf SYSTEM_MEMORY festgelegt ist. |
KSMEMORY_TYPE_DEVICE_UNKNOWN | Gibt an, dass der Gerätespeicherzuordnungstyp nicht angegeben ist. |
BusType
Gibt den physischen Bus an, der auf den durch MemoryType angegebenen physischen Arbeitsspeicher zugreift. Verwenden Sie dieses Feld, um einen kompatiblen Speichertyp basierend auf dem Bus zu ermitteln, der für das Verbindungsmedium verwendet wird. Diese Unterscheidung ist entscheidend, wenn ein Pin verschiedene Speichertypen basierend auf dem Verbindungsmedium verfügbar macht. BusType kann über einen der in der folgenden Tabelle aufgeführten Werte verfügen.
Typ | BESCHREIBUNG |
---|---|
GUID_BUS_TYPE_PCI | Verbindungsbus für Peripheriekomponenten. |
GUID_BUS_TYPE_USB | Universeller serieller Bus. |
GUID_BUS_TYPE_1394 | Serieller IEEE 1394-Bus. |
GUID_BUS_TYPE_AVC | Audio-/Videosteuerungsbus. |
GUID_61883_CLASS | 61883-Protokollbus. |
MemoryFlags
Gibt an, dass der Verbindungspunkt für die Framezuordnung verantwortlich ist. Sollte auf KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE festgelegt werden.
BusFlags
Wird nicht verwendet.
Flags
Ähnlich wie die OptionsFlags- und RequirementsFlags-Union in der KSALLOCATOR_FRAMING-Struktur mit dem Hinzufügen der Flags, die Unterstützung für Pipes hinzufügen.
Frames
Gibt die Gesamtzahl der zulässigen ausstehenden Frames an. Entspricht dem Frames-Element der KSALLOCATOR_FRAMING-Struktur .
FileAlignment
Anforderung für die Frameausrichtung. Entspricht dem FileAlignment-Element der KSALLOCATOR_FRAMING-Struktur .
FramePitch
Definiert das LONG-ElementFramePitch.
MemoryTypeWeight
Ein Wert vom Typ ULONG , der die pinweite Gewichtung dieses Speichertyps angibt.
PhysicalRange
Eine Struktur vom Typ KS_FRAMING_RANGE , die den physischen Grenzwert für Framegrößen angibt.
FramingRange
Eine Struktur vom Typ KS_FRAMING_RANGE_WEIGHTED , die den optimalen Bereich der Framegrößen angibt.
Hinweise
Legen Sie KSALLOCATOR_FLAG_CAN_ALLOCATE nicht so fest, dass die Speicheradressierungsfunktion angegeben wird. Ein Filter kann möglicherweise über einen gerätespezifischen Bus auf den gerätespezifischen Speicher zugreifen, indem er auf die Speicheradresse auf diesem Bus verweist, und das Protokoll zum Zuweisen dieses gerätespezifischen Speichers nicht unterstützt.
Jede KSALLOCATOR_FRAMING_EX instance enthält mindestens ein Rahmenelement.
Anforderungen
Anforderung | Wert |
---|---|
Header | ks.h (einschließlich Ks.h) |