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 riordinare. 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
Impostare su zero.
Blocco di stato
Valori restituiti
FSCTL_REARRANGE_FILE restituisce STATUS_SUCCESS al completamento; 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. |
Osservazioni
parametri request contengono offset di byte di file 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 i 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 in corrispondenza dell'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 |
---|---|
dell'istanza di |
[in] Solo per FltFsControlFile. Puntatore a un'istanza opaca per il chiamante. Questo parametro è obbligatorio e non può essere NULL. |
FileObject | [in] Solo per FltFsControlFile. Puntatore all'oggetto file per il file o la directory che rappresenta la destinazione di questa richiesta. Questo parametro è obbligatorio e non può essere NULL. |
fileHandle | [in] Solo per ZwFsControlFile. Handle di file del file o della directory che rappresenta la 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. |
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 10, versione 1809 |
intestazione |
ntifs.h |