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 |