KsAllocateExtraData-Funktion (ks.h)
Die KsAllocateExtraData--Funktion wird mit Streaming-IRPs verwendet, um einen Puffer zuzuweisen, der zusätzliche Headerdaten enthält. Ein Zeiger auf den zugewiesenen Puffer wird zurückgegeben, und der Puffer muss vom Aufrufer schließlich freigegeben werden.
Syntax
KSDDKAPI NTSTATUS KsAllocateExtraData(
[in, out] PIRP Irp,
[in] ULONG ExtraSize,
[out] PVOID *ExtraBuffer
);
Parameter
[in, out] Irp
Gibt das IRP an, das die Datenstromheader enthält. Das IRP muss zuvor an KsProbeStreamIrp übergeben worden sein, um die Header zu puffern.
[in] ExtraSize
Gibt die Größe des zusätzlichen Speichers in Bytes an, der zwischen den einzelnen Datenstromheader zugeordnet werden soll. Dieser Wert muss an einer Acht-Byte-Grenze ausgerichtet sein. Eine Kopie der Kopfzeilen wird im zurückgegebenen Puffer platziert, wobei die zusätzliche Datengröße zwischen den einzelnen Kopfzeilen eingefügt wird. Dies muss vom Anrufer freigegeben werden.
[out] ExtraBuffer
Verweist auf einen vom Aufrufer zugewiesenen Zeiger, der beim erfolgreichen Abschluss auf einen vom System zugewiesenen Puffer verweist, der die Datenstromheader und den angeforderten Abstand dazwischen enthält. Dies muss vom Anrufer freigegeben werden.
Rückgabewert
Die KsAllocateExtraData--Funktion gibt bei erfolgreicher Ausführung STATUS_SUCCESS zurück oder gibt einen Ressourcen- oder Zugriffsfehler zurück.
Bemerkungen
Wenn KsAllocateExtraData erfolgreich abgeschlossen wird, wird ein Zeiger auf einen Speicherblock zurückgegeben, der die Datenkopfzeilen des Datenstroms aus dem IRP enthält, die bei Irp-angegeben sind, und zwischen den einzelnen Headern der Größe, die in ExtraSizeangegeben sind. Nachfolgend sehen Sie ein Beispiel für einen solchen resultierenden Puffer:
Wenn der zusätzliche Puffer nicht mehr benötigt wird, sollte der Speicher mit ExFreePool-freigegeben werden.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | ks.h (enthalten Ks.h) |
Library | Ks.lib |
IRQL- | < DISPATCH_LEVEL |