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 |
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 |