FsRtlKernelFsControlFile-Funktion (ntifs.h)

Die FsRtlKernelFsControlFile-Funktion erstellt eine explizite FSCTL_XXX IRP, sendet sie in den Stapel, wartet synchron auf den Abschluss und gibt das Ergebnis zurück. Mit dieser Funktion kann der Aufrufer diese Aktion durch FileObject anstelle von handle abschließen.

Syntax

NTSTATUS FsRtlKernelFsControlFile(
  [in]  PFILE_OBJECT FileObject,
  [in]  ULONG        FsControlCode,
  [in]  PVOID        InputBuffer,
  [in]  ULONG        InputBufferLength,
  [out] PVOID        OutputBuffer,
  [out] ULONG        OutputBufferLength,
  [out] PULONG       RetOutputBufferSize
);

Parameter

[in] FileObject

Zeiger auf die FILE_OBJECT , an die der Vorgang gesendet werden soll.

[in] FsControlCode

FSCTL_XXX Code, der angibt, welcher Dateisystemsteuerungsvorgang ausgeführt werden soll. Der Wert dieses Parameters bestimmt die Formate und erforderlichen Längen von InputBuffer und OutputBuffer sowie welche der folgenden Parameterpaare erforderlich sind. Ausführliche Informationen zu den systemdefinierten FSCTL_XXX-Codes finden Sie im Abschnitt "Hinweise" des Referenzeintrags für DeviceIoControl in der Microsoft Windows SDK-Dokumentation.

[in] InputBuffer

Zeiger auf einen vom Aufrufer zugewiesenen Eingabepuffer, der gerätespezifische Informationen enthält, die dem Zieltreiber zugewiesen werden sollen. Wenn FsControlCode einen Vorgang angibt, für den keine Eingabedaten erforderlich sind, ist dieser Zeiger optional und kann NULL sein. Beachten Sie, dass dieser Puffer bei der Rückgabe möglicherweise geändert wird und der Aufrufer sich daran anpassen muss. Dies liegt daran, dass dieser Puffer möglicherweise verwendet wird, um die Ausgabedaten aufzunehmen.

[in] InputBufferLength

Länge des InputBuffers in Bytes.

[out] OutputBuffer

Zeiger auf einen vom Aufrufer zugewiesenen Ausgabepuffer, in dem Informationen vom Zieltreiber zurückgegeben werden. Wenn FsControlCode einen Vorgang angibt, der keine Ausgabedaten erzeugt, ist dieser Zeiger optional und kann NULL sein.

[out] OutputBufferLength

Länge des OutputBuffers in Bytes.

[out] RetOutputBufferSize

Empfängt die Anzahl der tatsächlich geschriebenen (zurückgegebenen) Bytes im Ausgabepuffer.

Rückgabewert

FsRtlKernelFsControlFile gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert zurück, z. B. einen der folgenden.

Wert Bedeutung
STATUS_INSUFFICIENT_RESOURCES Ein Poolzuordnungsfehler ist aufgetreten.
STATUS_INVALID_PARAMETER Es wurde ein ungültiger Parameter angegeben (z. B. ein ungültiges FileObject).

Hinweise

FsRtlKernelFsControlFile legt den IRP_MN_KERNEL_CALL Nebencode fest, mit dem Vorgänge ausgeführt werden können, ohne dass für bestimmte Vorgänge Berechtigungen zum Verwalten von Volumes erforderlich sind.

Bei dieser Funktion wird davon ausgegangen, dass es sich bei allen an sie übergebenen Puffern um Kernelmoduspuffer handelt.

Anforderungen

Anforderung Wert
Header ntifs.h

Weitere Informationen

ZwFsControlFile