FSCTL_REARRANGE_FILE IOCTL (ntifs.h)
FSCTL_REARRANGE_FILE riorganizzare l'allocazione all'interno del file, spostando i cluster da un intervallo di origine contiguo richiesto all'interno di un file in un altro percorso all'interno dello stesso file.
Codice principale
Buffer di input
Puntatore a una struttura REARRANGE_FILE_DATA che descrive l'allocazione da riorganiare. Per i chiamanti a 32 bit, il buffer di input è un puntatore a una struttura REARRANGE_FILE_DATA32 .
Lunghezza del buffer di input
Dimensioni in byte del buffer di input.
Buffer di output
Nessuno; impostato su NULL.
Lunghezza del buffer di output
Imposta su zero.
Blocco dello stato
Valori restituiti
FSCTL_REARRANGE_FILE restituisce STATUS_SUCCESS al completamento positivo; in caso contrario, restituisce un codice NTSTATUS, ad esempio uno dei seguenti.
Codice restituito | Significato |
---|---|
STATUS_ACCESS_DENIED | Sono consentite solo chiamate in modalità kernel. |
STATUS_BUFFER_TOO_SMALL | La lunghezza del buffer di input specificata è inferiore a sizeof(REARRANGE_FILE_DATA). |
STATUS_PENDING | Il completamento dell'operazione è in sospeso. |
Commenti
I parametri della richiesta contengono offset di byte di origine e di destinazione e lunghezza in byte dell'area di origine da spostare, tutti i quali devono essere allineati al cluster.
- Se si spostano cluster verso il basso, l'offset del file di destinazione indica il punto in cui deve essere allineato il limite inferiore dell'intervallo di origine mobile.
- Se si spostano cluster verso l'alto, l'offset del file di destinazione indica il punto in cui deve essere allineato il limite superiore dell'intervallo di origine.
In entrambi i casi, l'offset di destinazione indica che l'intervallo di origine deve essere inserito prima del cluster che inizia con l'offset di destinazione, la distinzione forzata dal vincolo che le dimensioni di allocazione rimangono fisse.
A differenza di FSCTL_SHUFFLE_FILE, FSCTL_REARRANGE_FILE non consente l'aggiunta di allocazioni contenenti dati casuali.
Per eseguire questa operazione, chiamare FltFsControlFile o ZwFsControlFile con i parametri seguenti.
Parametro | Descrizione |
---|---|
Istanza | [in] Solo per FltFsControlFile . Puntatore opaco dell'istanza per il chiamante. Questo parametro è obbligatorio e non può essere NULL. |
FileObject | [in] Solo per FltFsControlFile . Puntatore a oggetti file per il file o la directory di destinazione di questa richiesta. Questo parametro è obbligatorio e non può essere NULL. |
FileHandle | [in] Solo per ZwFsControlFile . Handle file del file o della directory di destinazione di questa richiesta. Questo parametro è obbligatorio e non può essere NULL. |
IoStatusBlock | [out] Solo per ZwFsControlFile . Puntatore a una struttura IO_STATUS_BLOCK che contiene lo stato finale della richiesta. |
FsControlCode | [in] Impostare su FSCTL_REARRANGE_FILE. |
Inputbuffer | [in] Vedere parametri IOCTL. |
InputBufferLength | [in] Vedere parametri IOCTL. |
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10, versione 1809 |
Intestazione | ntifs.h |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per