estrutura FILE_OBJECTID_INFORMATION (ntifs.h)

A estrutura FILE_OBJECTID_INFORMATION é usada para consultar informações de ID de objeto para os arquivos em um diretório em um volume NTFS.

Sintaxe

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;

Membros

FileReference

O número de referência do arquivo de 8 bytes para o arquivo. O NTFS gera esse número e o atribui ao arquivo automaticamente quando o arquivo é criado.

ObjectId[16]

A ID do objeto de arquivo de 16 bytes para o arquivo. O NTFS gera esse número e o atribui ao arquivo a pedido de um driver ou aplicativo. As IDs de objeto de arquivo têm a garantia de serem exclusivas somente dentro do volume em que o arquivo reside.

DUMMYUNIONNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME.BirthVolumeId[16]

O identificador de objeto do volume no qual o arquivo residia quando o identificador de objeto foi criado ou zero se o volume não tivesse identificador de objeto naquele momento. Após operações de cópia, operações de movimentação ou outras operações de arquivo, BirthVolumeId pode não ser o mesmo que o identificador de objeto do volume no qual o objeto reside atualmente.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.BirthObjectId[16]

O identificador de objeto do arquivo no momento em que ele foi criado. Após operações de cópia, operações de movimentação ou outras operações de arquivo BirthObjectId podem não ser iguais ao valor atual do membro ObjectId .

DUMMYUNIONNAME.DUMMYSTRUCTNAME.DomainId[16]

Reservados; deve ser zero.

DUMMYUNIONNAME.ExtendedInfo[48]

Dados fornecidos pelo usuário. Você pode usá-lo para conter os membros BirthVolumeID, BirthObjectID e DomainID ou pode definir uma estrutura de dados diferente.

Comentários

Essas informações podem ser consultadas de uma das seguintes maneiras:

  • Chame ZwQueryDirectoryFile, passando FileObjectIdInformation como o valor de FileInformationClass e passando um buffer alocado pelo chamador FILE_OBJECTID_INFORMATION estruturado como o valor de FileInformation.

  • Crie um IRP com código de função principal IRP_MJ_DIRECTORY_CONTROL e código de função secundária IRP_MN_QUERY_DIRECTORY.

Nenhum direito de acesso especial é necessário para consultar essas informações.

O suporte para números de referência de arquivo e IDs de objeto de arquivo é específico do sistema de arquivos:

  • As IDs de objeto de arquivo têm suporte apenas em volumes NTFS. O NTFS permite que os arquivos sejam abertos pela ID do objeto, bem como pelo número de referência do arquivo.
  • O ReFS não dá suporte a IDs de objeto. O ReFS usa IDs de arquivo de 128 bits, portanto, não pode distinguir corretamente entre a ID do arquivo versus a ID do objeto ao processar uma ID aberta por. (As IDs de arquivo são de 64 bits no NTFS, portanto, são facilmente distinguidas das IDs de objeto. O NTFS também dá suporte simultaneamente à abertura por ID de 128 bits: se os 64 bits altos forem zero, os 64 bits baixos serão tratados como uma ID de arquivo; caso contrário, o valor de 128 bits é tratado como uma ID de objeto.)

Os drivers de filtro do sistema de arquivos que usam IDs de objeto de arquivo devem ser testados para interoperabilidade com DFS, o serviço Replicador e o serviço de Acompanhamento de Link Distribuído, que usam e manipulam IDs de objeto de arquivo.

Essa estrutura deve ser alinhada em um limite LONG (4 bytes).

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000
Cabeçalho ntifs.h (include Ntifs.h, Fltkernel.h)

Confira também

FILE_INTERNAL_INFORMATION

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile