FSCTL_SET_OBJECT_ID_EXTENDED IOCTL(winioctl.h)
지정된 파일 또는 디렉터리에 대한 개체 식별자와 연결된 사용자 데이터를 수정합니다.
이 작업을 수행하려면 다음 매개 변수를 사용하여 DeviceIoControl 함수를 호출합니다.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to device
FSCTL_SET_OBJECT_ID_EXTENDED, // dwIoControlCode
(LPVOID) lpInBuffer, // input buffer
(DWORD) nInBufferSize, // size of input buffer
NULL, // lpOutBuffer
0, // nOutBufferSize
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
설명
개체 식별자는 파일 및 디렉터리를 추적하는 데 사용됩니다. 대부분의 애플리케이션에는 표시되지 않으며 애플리케이션에서 수정해서는 안 됩니다. 개체 식별자를 수정하면 파일의 일부에서 전체 데이터 볼륨까지 데이터가 손실됩니다.
이 작업은 개체 식별자에서만 사용자 데이터를 설정합니다. 가능한 용도는 개체 식별자를 만들기 위한 타임스탬프를 저장하거나 단조롭게 증가하는 버전 번호를 저장하는 것입니다. FILE_OBJECTID_BUFFER 구조체의 ObjectId 멤버는 무시됩니다. ObjectId 멤버를 수정하는 메커니즘은 없습니다. FSCTL_SET_OBJECT_ID_EXTENDED 제어 코드의 일반적인 사용은 시스템에서 개체 식별자를 만들 때 애플리케이션이 NTFS 파일 시스템에서 생성된 사용자 데이터를 사용하지 않는 곳입니다.
아직 없는 개체에서 개체 식별자를 설정하려면 FSCTL_SET_OBJECT_ID 제어 코드를 사용합니다. NTFS 파일 시스템이 없는 경우 개체 식별자를 생성하도록 하려면 FSCTL_CREATE_OR_GET_OBJECT_ID 제어 코드를 사용합니다.
원격 파일에 대한 타임스탬프를 올바르게 업데이트하지 못할 수 있습니다. 일관된 결과를 보장하려면 버퍼되지 않은 I/O를 사용합니다.
Windows 8 및 Windows Server 2012에서 이 코드는 다음 기술에서 지원됩니다.
기술 | 지원됨 |
---|---|
SMB(서버 메시지 블록) 3.0 프로토콜 | 예 |
SMB 3.0 TFO(투명 장애 조치(failover)) | 예 |
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 | 예 |
CsvFS(클러스터 공유 볼륨 파일 시스템) | 예 |
ReFS(Resilient File System) | No |
요구 사항
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
머리글 | winioctl.h(Windows.h 포함) |