FSCTL_QUERY_ALLOCATED_RANGES IOCTL (ntifs.h)
FSCTL_QUERY_ALLOCATED_RANGES richiede un'analisi di un file o di un flusso alternativo alla ricerca di intervalli di byte che possono contenere dati diversi da zero e quindi restituire informazioni su tali intervalli. Solo i file sparse possono avere intervalli azzerato noti al sistema operativo. Per altri file, il buffer di output conterrà solo un singolo intervallo contenente il punto iniziale e la lunghezza richiesta.
Codice principale
FSCTL_QUERY_ALLOCATED_RANGES
Buffer di input
Puntatore a una struttura FILE_ALLOCATED_RANGE_BUFFER che indica l'intervallo di query per l'allocazione.
Lunghezza del buffer di input
Dimensione della struttura FILE_ALLOCATED_RANGE_BUFFER a cui InputBuffer punta, in byte.
Buffer di output
Puntatore a una matrice di zero o più FILE_ALLOCATED_RANGE_BUFFER elementi dati in cui vengono restituiti i risultati della query. Per altre informazioni, vedere più avanti.
Lunghezza del buffer di output
Dimensione del buffer a cui punta OutputBuffer , in byte.
Buffer di input/output
n/d
Lunghezza del buffer di input/output
n/d
Blocco dello stato
Riservato per l'utilizzo nel sistema.
Commenti
Per eseguire questa operazione, chiamare FltFsControlFile o ZwFsControlFile con i parametri seguenti.
Parametro | Descrizione |
---|---|
Istanza | [in] Solo per FltFsControlFile . Puntatore di istanza opaco 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 della richiesta. Questo parametro è obbligatorio e non può essere NULL. |
FileHandle | [in] Solo per ZwFsControlFile . Handle di file del file o della directory di destinazione della 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_QUERY_ALLOCATED_RANGES. |
Inputbuffer | [in] Puntatore a una struttura FILE_ALLOCATED_RANGE_BUFFER che indica l'intervallo di query per l'allocazione. |
InputBufferLength | [in] Dimensione del buffer a cui InputBuffer punta, in byte. |
OutputBuffer | [out] Puntatore a una matrice di zero o più FILE_ALLOCATED_RANGE_BUFFER elementi dati in cui vengono restituiti i risultati della query. Per altre informazioni, vedere più avanti. |
OutputBufferLength | [out] Dimensione del buffer a cui punta OutputBuffer , in byte. |
LengthReturned | [out] Puntatore a una variabile allocata dal chiamante che riceve le dimensioni in byte delle informazioni restituite nel buffer in OutputBuffer. |
FSCTL_QUERY_ALLOCATED_RANGES restituisce una matrice di zero o più elementi dati FILE_ALLOCATED_RANGE_BUFFER nel buffer a cui punta OutputBuffer . Il numero di elementi FILE_ALLOCATED_RANGE_BUFFER restituiti viene calcolato dividendo il valore restituito in LengthReturned da sizeof(FILE_ALLOCATED_RANGE_BUFFER)
. Gli intervalli restituiti devono intersecare l'intervallo specificato in InputBuffer. Zero FILE_ALLOCATED_RANGE_BUFFER gli elementi dati vengono restituiti quando il file non ha intervalli allocati.
Valori restituiti
FSCTL_QUERY_ALLOCATED_RANGES restituisce STATUS_SUCCESS al completamento; in caso contrario restituisce un codice di errore. Di seguito sono riportati i codici di errore comuni.
Codice di errore | Significato |
---|---|
STATUS_INVALID_PARAMETER | Un parametro non è valido. Ad esempio: l'handle non è un file; la dimensione di InputBuffer è minore della dimensione di una struttura FILE_ALLOCATED_RANGE_BUFFER ; FileOffset è minore di zero; La lunghezza è minore di zero; o FileOffset più Lunghezza è maggiore di 0x7FFFFFFFFFFFFFFF. |
STATUS_INVALID_USER_BUFFER | Il buffer di input o il buffer di output non è allineato a un limite a 4 byte. |
STATUS_BUFFER_TOO_SMALL | Il buffer di output è troppo piccolo per contenere una struttura FILE_ALLOCATED_RANGE_BUFFER . |
STATUS_BUFFER_OVERFLOW | Il buffer di output è troppo piccolo per contenere il numero necessario di strutture FILE_ALLOCATED_RANGE_BUFFER . |
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 |
Intestazione | ntifs.h |