KSALLOCATOR_FRAMING Struktur (ks.h)
Die KSALLOCATOR_FRAMING-Struktur wird verwendet, um Rahmenanforderungen abzufragen und Allocator-Erstellungsanforderungen zu übermitteln.
Syntax
typedef struct {
union {
ULONG OptionsFlags;
ULONG RequirementsFlags;
};
#if ...
POOL_TYPE PoolType;
#else
ULONG PoolType;
#endif
ULONG Frames;
ULONG FrameSize;
union {
ULONG FileAlignment;
LONG FramePitch;
};
ULONG Reserved;
} KSALLOCATOR_FRAMING, *PKSALLOCATOR_FRAMING;
Angehörige
OptionsFlags
Gibt die Zuweisungsoptionskennzeichnungen an, die während der Erstellung des Allocators für den Verbindungspunkt angegeben wurden. Das OptionsFlags Member kann einen der folgenden Werte enthalten.
OptionsFlags | Beschreibung |
---|---|
KSALLOCATOR_OPTIONF_COMPATIBLE | Gibt an, dass die Rahmenoptionen des erstellten Allocators mit dem nachgeschalteten Ocator kompatibel sind. Diese Option wird in der Regel angegeben, wenn einem in-situ-Modifizierer ein Allocator für Kopierpuffer zugewiesen wird. Wenn der Filter nicht erforderlich ist, um einen bestimmten Frame zu ändern, kann er den Frame an den downstream-Filter übermitteln, ohne einen zusätzlichen Frame vom downstream-Zuweisungsverteiler zuzuordnen, wenn diese Option angegeben wird. |
KSALLOCATOR_OPTIONF_SYSTEM_MEMORY | Gibt an, dass der Systemspeicher für Zuordnungen verwendet werden soll. Wenn angegeben, muss der Allocator Speicher aus dem Pool zuordnen, wie im PoolType Member angegeben. Andernfalls wird davon ausgegangen, dass die Spüle eine Systemadressenzuordnung zu Einem-Board-RAM oder anderen Speicherformen auf dem Gerät bereitstellt. |
RequirementsFlags
Ein Wert vom Typ ULONG, der die Allocatoranforderungen für diesen Verbindungspunkt für Abfragevorgänge beschreibt. Das RequirementsFlags Member kann die folgenden Werte enthalten.
Flag-Wert | Beschreibung |
---|---|
KSALLOCATOR_REQUIREMENTF_INPLACE_MODIFIER | Gibt an, dass der Verbindungspunkt eine direkte Änderung ausführen kann. |
KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY | Gibt an, dass für den Verbindungspunkt Systemspeicher für Zuordnungen erforderlich ist. Wenn diese Option nicht festgelegt ist, wird davon ausgegangen, dass die Spüle eine Systemadressraumzuordnung zu Einem-Board-RAM oder anderen Speicherformen auf dem Gerät bereitstellt. |
KSALLOCATOR_REQUIREMENTF_FRAME_INTEGRITY | Gibt an, dass für den Verbindungspunkt nachgeschaltete Filter die Datenintegrität der angegebenen Frames beibehalten. |
KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE | Gibt an, dass für den Verbindungspunkt alle gesendeten Frames zugewiesen werden müssen. |
KSALLOCATOR_REQUIREMENTF_PREFERENCES_ONLY | Gibt an, dass die Flags "Anforderungen" nur Einstellungen sind und der Verbindungspunkt Frames zuordnen kann, die diese Spezifikationen nicht erfüllen. |
PoolType
Eine Struktur vom Typ POOL_TYPE, die den Zuordnungspooltyp für den Kernelmodus angibt.
Frames
Gibt die Gesamtzahl der zulässigen ausstehenden Frames an. Null gibt an, dass der Filter keine Anforderung für dieses Element hat.
FrameSize
Gibt die Gesamtgröße des Frames an, einschließlich Präfix und Postfix. Null gibt an, dass der Filter keine Anforderung für dieses Element hat.
FileAlignment
Ein Wert vom Typ ULONG, der die beim Zuordnen von Frames zu verwendende Byteausrichtung beschreibt. In der folgenden Tabelle werden mehrere mögliche Ausrichtungswerte beschrieben.
Wert | Beschreibung |
---|---|
FILE_BYTE_ALIGNMENT | 1-Byte-Ausrichtung |
FILE_WORD_ALIGNMENT | 2-Byte-Ausrichtung |
FILE_LONG_ALIGNMENT | 4-Byte-Ausrichtung |
FILE_32_BYTE_ALIGNMENT | 32-Byte-Ausrichtung |
FILE_64_BYTE_ALIGNMENT | 64-Byte-Ausrichtung |
FramePitch
Reserved
Reserviert für die Systemverwendung. Auf Null festgelegt.
Bemerkungen
Verwenden Sie KSALLOCATOR_FRAMING, um mithilfe von IRP_MJ_CREATE eine Zuweisungsanforderung an ein Handle einer Spüle zu übermitteln.
Wenn Sie einen Wert für das FileAlignment Member angeben, beträgt die kleinste Zuordnungsausrichtung 1 Byte (FILE_BYTE_ALIGNMENT). Software, die als Zuordnung fungiert, sollte 4-Byte-Ausrichtung (FILE_LONG_ALIGNMENT) unterstützen, falls möglich.
Anforderungen
Anforderung | Wert |
---|---|
Header- | ks.h (enthalten Ks.h) |