FILE_OBJECTID_INFORMATION 구조체(ntifs.h)
FILE_OBJECTID_INFORMATION 구조체는 NTFS 볼륨의 디렉터리에 있는 파일에 대한 개체 ID 정보를 쿼리하는 데 사용됩니다.
구문
typedef struct _FILE_OBJECTID_INFORMATION {
LONGLONG FileReference;
UCHAR ObjectId[16];
union {
struct {
UCHAR BirthVolumeId[16];
UCHAR BirthObjectId[16];
UCHAR DomainId[16];
} DUMMYSTRUCTNAME;
UCHAR ExtendedInfo[48];
} DUMMYUNIONNAME;
} FILE_OBJECTID_INFORMATION, *PFILE_OBJECTID_INFORMATION;
멤버
FileReference
파일에 대한 8 바이트 파일 참조 번호입니다. NTFS는 이 숫자를 생성하고 파일을 만들 때 자동으로 파일에 할당합니다.
ObjectId[16]
파일의 16 바이트 파일 개체 ID입니다. NTFS는 이 숫자를 생성하고 드라이버 또는 애플리케이션의 요청에 따라 파일에 할당합니다. 파일 개체 ID는 파일이 있는 볼륨 내에서만 고유하도록 보장됩니다.
DUMMYUNIONNAME
DUMMYUNIONNAME.DUMMYSTRUCTNAME
DUMMYUNIONNAME.DUMMYSTRUCTNAME.BirthVolumeId[16]
개체 식별자를 만들 때 파일이 상주한 볼륨의 개체 식별자이거나, 볼륨에 당시 개체 식별자가 없는 경우 0입니다. 복사 작업, 이동 작업 또는 기타 파일 작업 후에 BirthVolumeId 는 개체가 현재 있는 볼륨의 개체 식별자와 동일하지 않을 수 있습니다.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.BirthObjectId[16]
파일을 만들 때의 개체 식별자입니다. 복사 작업, 이동 작업 또는 기타 파일 작업 후 BirthObjectId 는 ObjectId 멤버의 현재 값과 동일하지 않을 수 있습니다.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.DomainId[16]
예약; 는 0이어야 합니다.
DUMMYUNIONNAME.ExtendedInfo[48]
사용자가 제공한 데이터입니다. 이를 사용하여 BirthVolumeID, BirthObjectID 및 DomainID 멤버를 포함하거나 다른 데이터 구조를 정의할 수 있습니다.
설명
이 정보는 다음 방법 중 하나로 쿼리할 수 있습니다.
ZwQueryDirectoryFile을 호출하여 FileObjectIdInformation을 FileInformationClass 값으로 전달하고 호출자가 할당한 FILE_OBJECTID_INFORMATION 구조화된 버퍼를 FileInformation 값으로 전달합니다.
주 함수 코드 IRP_MJ_DIRECTORY_CONTROL 및 부 함수 코드 IRP_MN_QUERY_DIRECTORY 사용하여 IRP를 만듭니다.
이 정보를 쿼리하는 데 특별한 액세스 권한이 필요하지 않습니다.
파일 참조 번호 및 파일 개체 ID에 대한 지원은 파일 시스템별입니다.
- 파일 개체 ID는 NTFS 볼륨에서만 지원됩니다. NTFS를 사용하면 파일 참조 번호뿐만 아니라 개체 ID로 파일을 열 수 있습니다.
- ReFS는 개체 ID를 지원하지 않습니다. ReFS는 128비트 파일 ID를 사용하므로 ID별로 열린 을 처리할 때 파일 ID와 개체 ID를 명확하게 구분할 수 없습니다. (파일 ID는 NTFS에서 64비트이므로 개체 ID와 쉽게 구별할 수 있습니다. 또한 NTFS는 128비트 ID로 열기를 동시에 지원합니다. 높은 64비트는 0이면 낮은 64비트는 파일 ID로 처리됩니다. 그렇지 않으면 128비트 값이 개체 ID로 처리됩니다.)
파일 개체 ID를 사용하는 파일 시스템 필터 드라이버는 모두 파일 개체 ID를 사용하고 조작하는 DFS, Replicator 서비스 및 분산 링크 추적 서비스와의 상호 운용성을 테스트해야 합니다.
이 구조체는 LONG(4 바이트) 경계에 맞춰야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 |
머리글 | ntifs.h(Ntifs.h, Fltkernel.h 포함) |