FSCTL_QUERY_FILE_LAYOUT-Steuerungscode
Der FSCTL_QUERY_FILE_LAYOUT-Steuerungscode ruft Dateilayoutinformationen für ein Dateisystemvolume ab. Die Ergebnisse dieser Anforderung sind eine Sammlung von Dateilayout-Informationseinträgen. Der Typ der zurückgegebenen Einträge wird durch Festlegen von Einschlussflags in der QUERY_FILE_LAYOUT_INPUT-Struktur gesteuert. Sie können die Ergebnisse optional filtern, indem Sie eine Reihe von Dateierweiterungen angeben, um die Auswahl von Layoutinformationen einzuschränken.
Um diesen Vorgang auszuführen, rufen Sie FltFsControlFile oder ZwFsControlFile mit den folgenden Parametern auf.
Parameter
FileObject [in]: Nur FltFsControlFile . Ein Dateiobjektzeiger für das Dateisystemvolume. Dieser Parameter ist erforderlich und darf nicht NULL sein.
FileHandle [in]: Nur ZwFsControlFile . Ein Dateihandle für das Dateisystemvolume. Dieser Parameter ist erforderlich und darf nicht NULL sein.
FsControlCode [in]: Der Steuerelementcode für den Vorgang. Verwenden Sie den FSCTL_QUERY_FILE_LAYOUT-Steuerelementcode für diesen Vorgang.
InputBuffer [in]: Ein Zeiger auf eine aufruferseitig zugeordnete QUERY_FILE_LAYOUT_INPUT-Struktur . Diese Struktur enthält die Auswahloptionen. Die optionalen Dateiblöcke werden nach QUERY_FILE_LAYOUT_INPUT eingeschlossen.
InputBufferLength [in]: Die Größe des Puffers in Bytes, auf den der InputBuffer-Parameter verweist. Die Größe von InputBuffer muss mindestens sizeof(QUERY_FILE_LAYOUT_INPUT) + (sizeof(Filter) * (NumberOfPairs - 1)) sein, wenn NumberOfPairs> 0 ist. Legen Sie andernfalls InputBufferLength = sizeof(QUERY_FILE_LAYOUT_INPUT) fest.
OutputBuffer [out]: Ein Zeiger auf eine aufruferseitig zugeordnete QUERY_FILE_LAYOUT_OUTPUT-Struktur . Dies ist der Header für die Dateilayouteinträge, die in diesem Puffer folgen.
OutputBufferLength [out]: Die Größe des Puffers in Bytes, auf den der OutputBuffer-Parameter verweist. Die Größe von OutputBuffer muss groß genug sein, um eine QUERY_FILE_LAYOUT_OUTPUT zusammen mit dem zurückgegebenen Dateilayout und den zurückgegebenen Streamlayoutstrukturen zu enthalten.
Statusblock
FltFsControlFile oder ZwFsControlFile gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert zurück, z. B. einen der folgenden Werte:
Code | Bedeutung |
---|---|
STATUS_INVALID_PARAMETER | Das Dateisystemvolume ist kein geöffnetes Benutzervolume, oder ein Pufferlängenwert ist falsch, oder es wird eine ungültige Abfrageoption festgelegt. |
STATUS_ACCESS_DENIED | Der Aufrufer kann nicht auf das Dateisystemvolume zugreifen. |
STATUS_INVALID_USER_BUFFER | Der Zeiger für InputBuffer oder OutputBuffer ist nicht ordnungsgemäß ausgerichtet. |
STATUS_BUFFER_TOO_SMALL | Der Wert in OutputBufferLength gibt an, dass OutputBuffer zu klein ist, um mindestens einen Layouteintrag zu enthalten. |
STATUS_END_OF_FILE | Der Zeiger für InputBuffer oder OutputBuffer ist nicht ordnungsgemäß ausgerichtet. |
Hinweise
Um alle Layouteinträge für ein Volume abzurufen, wird die FSCTL_QUERY_FILE_LAYOUT-Anforderung mehrmals ausgegeben, bis STATUS_END_OF_FILE zurückgegeben wird. Während STATUS_SUCCESS zurückgegeben wird, kann ein Aufrufer weiterhin eine FSCTL_QUERY_FILE_LAYOUT Anforderung für die verbleibenden Layouteinträge senden.
Die Enumeration von Layouteinträgen kann jederzeit neu gestartet werden, indem das flag QUERY_FILE_LAYOUT_RESTART in das Flags-Element von QUERY_FILE_LAYOUT_INPUT eingeschlossen wird. Nachdem FSCTL_QUERY_FILE_LAYOUT STATUS_END_OF_FILE zurückgegeben hat, ist es erforderlich, das QUERY_FILE_LAYOUT_RESTART-Flag in die nächste FSCTL_QUERY_FILE_LAYOUT-Anforderung aufzunehmen, um eine weitere Layouteintragsaufzählung zu starten.
Dieser Code wird von ReFS nicht unterstützt.
Anforderungen
Anforderungstyp | Anforderung |
---|---|
Unterstützte Mindestversion (Client) | Windows 8.1 Update |
Header | Ntifs.h (schließen Sie Ntifs.h oder Fltkernel.h ein) |