FSCTL_GET_NTFS_FILE_RECORD IOCTL(winioctl.h)
사용 중이고 서수 값이 요청된 파일 참조 번호보다 작거나 같은 첫 번째 파일 레코드를 검색합니다.
이 작업을 수행하려면 다음 매개 변수를 사용하여 DeviceIoControl 함수를 호출합니다.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to device
FSCTL_GET_NTFS_FILE_RECORD, // 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
);
설명
이 컨트롤 코드는 파일 식별자를 하향식으로 열거하고 항상 사용 중인 파일 레코드를 반환합니다. 즉, 이 컨트롤 코드에서 반환된 파일 식별자가 입력 버퍼에 지정된 파일 식별자와 동일하지 않을 수 있습니다. 예를 들어 파일 식별자 1~9 및 15가 사용 중이면 파일 식별자 10~14가 사용되지 않고 파일 식별자 15에 해당하는 파일 레코드가 요청되면 해당 파일 레코드가 반환됩니다.
파일 식별자 10~14에 해당하는 파일 레코드가 요청되면 파일 식별자 9에 해당하는 파일 레코드가 반환됩니다. 파일 식별자 1~9에 해당하는 파일 레코드가 요청되면 해당 파일 레코드가 반환됩니다.
lpOutBuffer가 가리키는 출력 버퍼의 올바른 크기를 확인하려면 먼저 FSCTL_GET_NTFS_VOLUME_DATA 제어 코드를 호출하여 하나의 파일 레코드의 크기를 가져옵니다. 반환된 NTFS_VOLUME_DATA_BUFFER 구조체의 BytesPerFileRecordSegment 멤버 값입니다. 그런 다음 출력 버퍼의 크기를 다음 식으로 설정합니다.
sizeof (NTFS_FILE_RECORD_OUTPUT_BUFFER) + sizeof (one file record) - 1
파일이 여러 파일 레코드로 구성된 경우 개별적으로 검색해야 합니다.
Windows 8 및 Windows Server 2012 이 코드는 다음 기술에서 지원됩니다.
기술 | 지원됨 |
---|---|
SMB(서버 메시지 블록) 3.0 프로토콜 | No |
SMB 3.0 TFO(투명 장애 조치(failover)) | No |
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 | No |
CsvFS(클러스터 공유 볼륨 파일 시스템) | Yes |
ReFS(Resilient File System) | No |
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
머리글 | winioctl.h(Windows.h 포함) |