2.4.4 FileAllocationInformation
This information class is used to set but not to query the allocation size for a file. The file system is passed a 64-bit signed integer containing the file allocation size, in bytes. The file system rounds the requested allocation size up to an integer multiple of the cluster size for nonresident files, or an implementation-defined multiple for resident files.<99><100> All unused allocation (beyond EOF) is freed on the last handle close.
A FILE_ALLOCATION_INFORMATION data element, defined as follows, is provided by the client.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AllocationSize |
|||||||||||||||||||||||||||||||
... |
AllocationSize (8 bytes): A 64-bit signed integer that contains the desired allocation to be used by the given file.
This operation returns a status code as specified in section 2.2. Upon success, the status code returned by the function that processes this file information class is STATUS_SUCCESS. The most common error codes are listed in the following table.
Error code |
Meaning |
---|---|
STATUS_INVALID_PARAMETER 0xC000000D |
The handle is for a directory and not a file, or the allocation is greater than the maximum file size allowed. |
STATUS_ACCESS_DENIED 0xC0000022 |
The handle was not opened to write file data or file attributes. |
STATUS_DISK_FULL 0xC000007F |
The disk is full. |
STATUS_INFO_LENGTH_MISMATCH 0xC0000004 |
The specified information record length does not match the length that is required for the specified information class. |