FSCTL_ENUM_USN_DATA IOCTL (winioctl.h)
Enumerates the update sequence number (USN) data between two specified boundaries to obtain master file table (MFT) records.
To perform this operation, call the DeviceIoControl function with the following parameters.
BOOL WINAPI DeviceIoControl( (HANDLE) hDevice, // handle to volume (DWORD) FSCTL_ENUM_USN_DATA, // dwIoControlCode(LPVOID) lpInBuffer, // input buffer (DWORD) nInBufferSize, // size of input buffer (LPVOID) lpOutBuffer, // output buffer (DWORD) nOutBufferSize, // size of output buffer (LPDWORD) lpBytesReturned, // number of bytes returned (LPOVERLAPPED) lpOverlapped ); // OVERLAPPED structure);
Input buffer length
Output buffer length
Input / Output buffer
Input / Output buffer length
For the implications of overlapped I/O on this operation, see the Remarks section of the DeviceIoControl topic.
To enumerate files on a volume, use the
FSCTL_ENUM_USN_DATA operation one or more times. On the
first call, set the starting point, the StartFileReferenceNumber member of the
MFT_ENUM_DATA structure, to
(DWORDLONG)0. Each call to
FSCTL_ENUM_USN_DATA retrieves the starting point for
the subsequent call as the first entry in the output buffer.
By comparing To identify recent changes to a volume, use the FSCTL_READ_USN_JOURNAL control code.
To retrieve a handle to a volume, call CreateFile with the lpFileName parameter set to a string in the following form:
In the preceding string, X is the letter identifying the drive on which the volume appears. The volume must be NTFS.
In Windows 8 and Windows Server 2012, this code is supported by the following technologies.
|Server Message Block (SMB) 3.0 protocol||No|
|SMB 3.0 Transparent Failover (TFO)||No|
|SMB 3.0 with Scale-out File Shares (SO)||No|
|Cluster Shared Volume File System (CsvFS)||Yes|
|Minimum supported client||Windows XP [desktop apps only]|
|Minimum supported server||Windows Server 2003 [desktop apps only]|
|Header||winioctl.h (include Windows.h)|