Share via


codice di controllo FSCTL_QUERY_FILE_LAYOUT

Il codice di controllo FSCTL_QUERY_FILE_LAYOUT recupera le informazioni sul layout dei file per un volume del file system. I risultati di questa richiesta sono una raccolta di voci di informazioni sul layout dei file. Il tipo di voci restituite è controllato impostando i flag di inclusione nella struttura QUERY_FILE_LAYOUT_INPUT . Facoltativamente, è possibile filtrare i risultati specificando un set di extent di file per limitare la selezione delle informazioni sul layout.

Per eseguire questa operazione, chiamare FltFsControlFile o ZwFsControlFile con i parametri seguenti.

Parametri

  • FileObject [in]: solo FltFsControlFile . Puntatore a oggetti file per il volume del file system. Questo parametro è obbligatorio e non può essere NULL.

  • FileHandle [in]: Solo ZwFsControlFile . Handle di file per il volume del file system. Questo parametro è obbligatorio e non può essere NULL.

  • FsControlCode [in]: codice di controllo per l'operazione. Utilizzare il codice di controllo FSCTL_QUERY_FILE_LAYOUT per questa operazione.

  • InputBuffer [in]: puntatore a una struttura di QUERY_FILE_LAYOUT_INPUT allocata dal chiamante. Questa struttura contiene le opzioni di selezione. Gli extent di file facoltativi vengono inclusi dopo QUERY_FILE_LAYOUT_INPUT.

  • InputBufferLength [in]: dimensioni, in byte, del buffer a cui punta il parametro InputBuffer . Le dimensioni di InputBuffer devono essere almeno sizeof(QUERY_FILE_LAYOUT_INPUT) + (sizeof(Filter) * (NumberOfPairs - 1)), quando NumberOfPairs> 0. In caso contrario, impostare InputBufferLength = sizeof(QUERY_FILE_LAYOUT_INPUT).

  • OutputBuffer [out]: puntatore a una struttura di QUERY_FILE_LAYOUT_OUTPUT allocata dal chiamante. Questa è l'intestazione per le voci di layout del file che seguono in questo buffer.

  • OutputBufferLength [out]: dimensione, in byte, del buffer a cui punta il parametro OutputBuffer . Le dimensioni di OutputBuffer devono essere sufficienti per contenere un QUERY_FILE_LAYOUT_OUTPUT insieme al layout del file e alle strutture di layout del flusso restituite.

Blocco dello stato

FltFsControlFile o ZwFsControlFile restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio uno di questi valori:

Codice Significato
STATUS_INVALID_PARAMETER Il volume del file system non è un volume utente aperto o un valore di lunghezza del buffer non è corretto oppure è impostata un'opzione di query non valida.
STATUS_ACCESS_DENIED Il chiamante non può accedere al volume del file system.
STATUS_INVALID_USER_BUFFER Il puntatore per InputBuffer o OutputBuffer non è allineato correttamente.
STATUS_BUFFER_TOO_SMALL Il valore in OutputBufferLength indica che OutputBuffer è troppo piccolo per contenere almeno una voce di layout.
STATUS_END_OF_FILE Il puntatore per InputBuffer o OutputBuffer non è allineato correttamente.

Commenti

Per recuperare tutte le voci di layout per un volume, la richiesta di FSCTL_QUERY_FILE_LAYOUT viene eseguita più volte fino a quando non viene restituita STATUS_END_OF_FILE. Mentre viene restituito STATUS_SUCCESS , un chiamante può continuare a inviare una richiesta di FSCTL_QUERY_FILE_LAYOUT per le voci di layout rimanenti.

L'enumerazione delle voci di layout può essere riavviata in qualsiasi momento includendo il flag QUERY_FILE_LAYOUT_RESTART nel membro Flags di QUERY_FILE_LAYOUT_INPUT. Inoltre, dopo che FSCTL_QUERY_FILE_LAYOUT ha restituito STATUS_END_OF_FILE, è necessario includere il flag QUERY_FILE_LAYOUT_RESTART nella richiesta di FSCTL_QUERY_FILE_LAYOUT successiva per avviare un'altra enumerazione della voce di layout.

Questo codice non è supportato da ReFS.

Requisiti

Tipo di requisito Requisito
Client minimo supportato Windows 8.1 Update
Intestazione Ntifs.h (include Ntifs.h o Fltkernel.h)

Vedi anche

QUERY_FILE_LAYOUT_INPUT

QUERY_FILE_LAYOUT_OUTPUT

FltFsControlFile

ZwFsControlFile