Freigeben über


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)

Weitere Informationen

KSALLOCATOR_FRAMING

KSALLOCATOR_FRAMING_EX

KS_COMPRESSION

KS_FRAMING_RANGE

KS_FRAMING_RANGE_WEIGHTED