FILE_OBJECTID_INFORMATION 結構 (ntifs.h)

FILE_OBJECTID_INFORMATION 結構可用來查詢NTFS磁碟區目錄中檔案的物件標識碼資訊。

語法

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位元組檔案物件標識碼。 NTFS 會產生此號碼,並在驅動程式或應用程式的要求將它指派給檔案。 檔案物件標識碼保證只在檔案所在的磁碟區內是唯一的。

DUMMYUNIONNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME.BirthVolumeId[16]

建立物件標識符時,檔案所在的磁碟區物件標識符,如果磁碟區當時沒有對象標識元,則為零。 複製作業、移動作業或其他檔案作業之後, BirthVolumeId 可能與物件目前所在的磁碟區對象標識碼不同。

DUMMYUNIONNAME.DUMMYSTRUCTNAME.BirthObjectId[16]

檔案在建立時的物件標識碼。 複製作業之後,移動作業或其他檔案作業 BirthObjectId 可能與 ObjectId 成員的目前值不同。

DUMMYUNIONNAME.DUMMYSTRUCTNAME.DomainId[16]

保留;必須是零。

DUMMYUNIONNAME.ExtendedInfo[48]

使用者提供的數據。 您可以使用它來包含 BirthVolumeIDBirthObjectIDDomainID 成員,也可以定義不同的數據結構。

備註

您可以使用下列任一種方式來查詢此資訊:

  • 呼叫 ZwQueryDirectoryFile,傳遞 FileObjectIdInformation 做為 FileInformationClass 的值,並傳遞呼叫端配置的呼叫端配置 ,FILE_OBJECTID_INFORMATION結構化緩衝區做為 FileInformation 的值。

  • 建立具有主要函式程式代碼的 IRP IRP_MJ_DIRECTORY_CONTROL和次要函式程式代碼IRP_MN_QUERY_DIRECTORY。

不需要特殊訪問許可權,才能查詢這項資訊。

檔案參考編號和檔案物件識別碼的支持是檔案系統特定的:

  • 只有NTFS磁碟區才支援檔案物件標識碼。 NTFS 允許以物件標識碼和檔案參考編號開啟檔案。
  • ReFS 不支援對象識別碼。 ReFS 使用 128 位檔案識別符,因此在處理依標識符開啟時,無法清楚區分檔案標識碼與對象識別碼。 (檔案識別碼是NTFS上的64位,因此可以輕鬆地區別物件標識碼。NTFS 也同時支援以128位標識符開啟:如果高64位為零,則會將低64位視為檔案識別碼;否則,會將128位值視為物件標識碼。)

使用檔案物件標識碼的文件系統篩選驅動程式應該經過測試,以與 DFS、複寫器服務及分散式連結追蹤服務互操作性,這些驅動程式全都使用及操作檔案物件識別碼。

此結構必須對齊 LONG (4 位元組) 界限。

規格需求

需求
最低支援的用戶端 Windows 2000
標頭 ntifs.h (包括 Ntifs.h、Fltkernel.h)

另請參閱

FILE_INTERNAL_INFORMATION

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile