Condividi tramite


FSCTL_QUERY_ALLOCATED_RANGES IOCTL (ntifs.h)

FSCTL_QUERY_ALLOCATED_RANGES richiede un'analisi di un file o di un flusso di alternativo alla ricerca di intervalli di byte che possono contenere dati diversi da zero e quindi restituire informazioni su tali intervalli. Solo i file di tipo sparse possono avere intervalli zero 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

Dimensioni della struttura FILE_ALLOCATED_RANGE_BUFFER che inputBuffer punta in byte.

Buffer di output

Puntatore a una matrice di zero o più elementi di dati FILE_ALLOCATED_RANGE_BUFFER in cui vengono restituiti i risultati della query. Per altre informazioni, vedere di seguito.

Lunghezza del buffer di output

Dimensioni del buffer a cui OutputBuffer punta, in byte.

Buffer di input/output

n/a

Lunghezza del buffer di input/output

n/a

Blocco di stato

Riservato per l'uso del sistema.

Osservazioni

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_QUERY_ALLOCATED_RANGES.
InputBuffer [in] Puntatore a una struttura FILE_ALLOCATED_RANGE_BUFFER che indica l'intervallo di query per l'allocazione.
inputBufferLength [in] Dimensioni del buffer a cui InputBuffer punta, in byte.
OutputBuffer [out] Puntatore a una matrice di zero o più elementi di dati FILE_ALLOCATED_RANGE_BUFFER in cui vengono restituiti i risultati della query. Per altre informazioni, vedere di seguito.
OutputBufferLength [out] Dimensioni del buffer a cui OutputBuffer punta, in byte.
lengthReturned [out] Puntatore a una variabile allocata dal chiamante che riceve le dimensioni in byte delle informazioni restituite nel buffer in corrispondenza di OutputBuffer.

FSCTL_QUERY_ALLOCATED_RANGES restituisce una matrice di zero o più elementi dati FILE_ALLOCATED_RANGE_BUFFER nel buffer a cui OutputBuffer punta. Il numero di elementi FILE_ALLOCATED_RANGE_BUFFER restituiti viene calcolato dividendo il valore restituito in LengthReturned per 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. I codici di errore comuni seguono.

Codice di errore Significato
STATUS_INVALID_PARAMETER Un parametro non è valido. Ad esempio: l'handle non è in un file; le dimensioni di InputBuffer sono minori delle dimensioni di una struttura FILE_ALLOCATED_RANGE_BUFFER; FileOffset è minore di zero; 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.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000
intestazione ntifs.h

Vedere anche

FILE_ALLOCATED_RANGE_BUFFER

FltFsControlFile

ZwFsControlFile