PFNKSALLOCATOR-Rückruffunktion (ks.h)

Minidriver können optional eine Rückruffunktion vom Typ PFNKSALLOCATOR als Parameter in Aufrufen von KsEnableEventWithAllocator, KsPropertyHandlerWithAllocator und KsMethodHandlerWithAllocator bereitstellen.

Syntax

PFNKSALLOCATOR Pfnksallocator;

NTSTATUS Pfnksallocator(
  [in] PIRP Irp,
  [in] ULONG BufferSize,
  [in] BOOLEAN InputOperation
)
{...}

Parameter

[in] Irp

Gibt den IRP an, für den die Pufferzuordnungsanforderung gestellt wird.

[in] BufferSize

Gibt die erforderliche Puffergröße an. Diese Größe deckt alle Parameter in der Anforderung ab.

[in] InputOperation

Auf TRUE festgelegt, wenn es sich um einen Eingabevorgang handelt, was bedeutet, dass das Feld Irp-IoStatus.Information> bei erfolgreicher Rückgabe die Anzahl der Bytes enthält, die zurück in den ursprünglichen Eingabepuffer kopiert werden sollen.

Rückgabewert

Gibt STATUS_SUCCESS zurück, wenn die Anforderung verarbeitet wird. Andernfalls wird ein geeigneter Fehlercode zurückgegeben.

Hinweise

In der Regel wird Poolarbeitsspeicher für Pufferzuordnungen verwendet. Dies ermöglicht Filter, die Ereignis-, Eigenschafts- und Methodenabfragen direkt an die Hardware übergeben, um zusätzliche Datenkopien zu vermeiden, indem sie den Puffer bereitstellen können, in dem diese Daten von den Standardbehandlungsfunktionen platziert werden. Daher kann ein Filter über Speicherblöcke verfügen, die bereits einem Adapter zugeordnet wurden, von dem aus Pufferzuordnungen erfolgen können.

Da es sich bei diesem Arbeitsspeicher vermutlich nicht um einen typischen poolseitig zugewiesenen Speicher handelt, muss der Filter nach Abschluss des Irp eine Pufferbereinigung durchführen. Dies bedeutet, dass der Allocator für Eingabevorgänge aus dem Benutzermodus, die nicht synchron sind, eine MDL für den Zielpuffer zuordnen, testen und sperren und eine Systemadresse abrufen muss. Dies muss erfolgen, um das Kopieren der Rückgabedaten in den ursprünglichen Puffer zu ermöglichen.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile ks.h (ks.h einschließen)