共用方式為


2.3.30 FSCTL_GET_RETRIEVAL_POINTER_COUNT Reply

The FSCTL_GET_RETRIEVAL_POINTER_COUNT reply message returns the results of the FSCTL_GET_RETRIEVAL_POINTER_COUNT request as a fixed size data element, RETRIEVAL_POINTER_COUNT, that specifies the number of extents on disk of a specific file.

The FSCTL_GET_RETRIEVAL_POINTER_COUNT reply returns the number of extents of nonresident data. A file system MAY allow resident data, which is data that can be written to disk within the file's directory record. Because resident data requires no additional disk space allocation, no extent locations are associated with resident data.<30>

The RETRIEVAL_POINTER_COUNT data element is as follows.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

ExtentCount

ExtentCount (4 bytes): A 32-bit unsigned integer that contains the number of extents. This number can be zero if there are no clusters allocated at (or beyond) the specified StartingVcn.

This message also returns a status code as specified in section 2.2. Upon success, the status code returned by the function that processes this FSCTL is STATUS_SUCCESS. The most common error codes are listed in the following table.

Error code

Meaning

STATUS_BUFFER_TOO_SMALL

0xC0000023

The output buffer is too small to contain a RETRIEVAL_POINTER_COUNT structure.

STATUS_INVALID_PARAMETER

0xC000000D

The input buffer is too small to contain a STARTING_VCN_INPUT_BUFFER, or the StartingVcn given is negative, or the handle is not to a file or directory.

STATUS_END_OF_FILE

0xC0000011

The stream is resident in the MFT and has no clusters allocated, or the starting VCN is beyond the end of the file.