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

Vedi anche

FILE_ALLOCATED_RANGE_BUFFER

FltFsControlFile

ZwFsControlFile