KS_FRAMING_ITEM Struktur (ks.h)
Die KS_FRAMING_ITEM-Struktur wird verwendet, um Allocatoranforderungen 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;
Angehörige
MemoryType
Gibt den Speichertyp an, der für Puffer und Datenframes verwendet wird. Es gibt eine teilweise Entsprechung zwischen diesem Element und dem PoolType Member in der KSALLOCATOR_FRAMING-Struktur. Die beiden Elemente unterscheiden sich darin, dass PoolType- nur seitenseitigen oder nicht seitenseitigen Pool zulässt. MemoryType- kann einen der werte enthalten, die in der folgenden Tabelle aufgeführt sind.
Wert | Beschreibung |
---|---|
KSMEMORY_TYPE_WILDCARD / KSMEMORY_TYPE_DONT_CARE / KSTYPE_DONT_CARE | Gibt an, dass die Speicherzuweisung ein beliebiger Speichertyp sein kann. |
KSMEMORY_TYPE_SYSTEM | Gibt an, dass die Speicherzuweisung Systemspeicher sein muss. |
KSMEMORY_TYPE_USER | Gibt an, dass die Speicherzuweisung arbeitsspeicher im Benutzermodus sein muss. |
KSMEMORY_TYPE_KERNEL_PAGED | Gibt an, dass die Speicherzuweisung kernelseitiger Speicher sein muss. Dies entspricht dem PoolType Member der KSALLOCATOR_FRAMING Struktur, die auf PagedPool- festgelegt ist, und dem RequirementsFlags Member dieser Struktur, das auf SYSTEM_MEMORY festgelegt ist. |
KSMEMORY_TYPE_KERNEL_NONPAGED | Gibt an, dass die Speicherzuweisung kernelfreiem Speicher sein muss. Dies entspricht dem PoolType Member der KSALLOCATOR_FRAMING Struktur, die auf NonPagedPool festgelegt ist, und dem RequirementsFlags Member 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 physischen Speicher zugreift, der durch MemoryType-angegeben wird. 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 einen der werte enthalten, die in der folgenden Tabelle aufgeführt sind.
Art | Beschreibung |
---|---|
GUID_BUS_TYPE_PCI | Peripheriekomponentenverbindungsbus. |
GUID_BUS_TYPE_USB | Universeller serieller Bus. |
GUID_BUS_TYPE_1394 | IEEE 1394 Serieller 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 Vereinigung in der KSALLOCATOR_FRAMING-Struktur, wobei die Kennzeichnungen hinzugefügt werden, die Unterstützung für Rohre hinzufügen.
Frames
Gibt die Gesamtzahl der zulässigen ausstehenden Frames an. Entspricht dem Frames- Member der KSALLOCATOR_FRAMING Struktur.
FileAlignment
Anforderung für die Frameausrichtung. Entspricht dem FileAlignment Member der KSALLOCATOR_FRAMING-Struktur.
FramePitch
Definiert das LONG Member FramePitch.
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 von Framegrößen angibt.
FramingRange
Eine Struktur vom Typ KS_FRAMING_RANGE_WEIGHTED, die den optimalen Bereich von Rahmengrößen angibt.
Bemerkungen
Legen Sie KSALLOCATOR_FLAG_CAN_ALLOCATE nicht fest, um die Speicheradressierungsfunktion anzugeben. 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 noch nicht unterstützt, um diesen gerätespezifischen Speicher zuzuweisen.
Jede KSALLOCATOR_FRAMING_EX Instanz enthält ein oder mehrere Rahmenelemente.
Anforderungen
Anforderung | Wert |
---|---|
Header- | ks.h (enthalten Ks.h) |