Freigeben über


FsRtlKernelFsControlFile-Funktion (ntifs.h)

Die FsRtlKernelFsControlFile--Funktion erstellt eine explizite FSCTL_XXX IRP, sendet sie nach unten, wartet synchron darauf, bis sie abgeschlossen ist, und gibt das Ergebnis zurück. Mit dieser Funktion kann der Aufrufer diese Aktion durch FileObject- anstelle von Handle ausführen.

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

Zeigen Sie auf die FILE_OBJECT, um den Vorgang zu senden.

[in] FsControlCode

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

[in] InputBuffer

Zeigen Sie auf einen vom Aufrufer zugewiesenen Eingabepuffer, der gerätespezifische Informationen enthält, die dem Zieltreiber zugewiesen werden sollen. Wenn FsControlCode- einen Vorgang angibt, der keine Eingabedaten erfordert, ist dieser Zeiger optional und kann NULL sein. Beachten Sie, dass dieser Puffer möglicherweise beim Zurückgeben geändert wird und der Aufrufer sich an diesen anpassen muss. Dies liegt daran, dass dieser Puffer zum Halten der Ausgabedaten verwendet werden kann.

[in] InputBufferLength

Länge des InputBuffer- in Byte.

[out] OutputBuffer

Zeigen Sie 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 OutputBuffer- in Byte.

[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 wie einen der folgenden zurück.

Wert Bedeutung
STATUS_INSUFFICIENT_RESOURCES Ein Poolzuweisungsfehler ist aufgetreten.
STATUS_INVALID_PARAMETER Ein ungültiger Parameter wurde bereitgestellt (z. B. ein ungültiger FileObject-).

Bemerkungen

FsRtlKernelFsControlFile legt den IRP_MN_KERNEL_CALL Nebencode fest, der es ermöglicht, Vorgänge auszuführen, ohne volumeberechtigungen für bestimmte Vorgänge zu verwalten.

Bei dieser Funktion wird davon ausgegangen, dass alle an sie übergebenen Puffer Kernelmoduspuffer sind.

Anforderungen

Anforderung Wert
Header- ntifs.h

Siehe auch

ZwFsControlFile-