共用方式為


EXTENDED_CREATE_INFORMATION結構 (wdm.h)

當 ntCreateFile CreateOption 參數中設定 FILE_CONTAINS_EXTENDED_CREATE_INFORMATION 旗標時,EXTENDED_CREATE_INFORMATION 結構是 ntCreateFile NtCreateFile 中的 EaBuffer 字段。

語法

typedef struct _EXTENDED_CREATE_INFORMATION {
  LONGLONG                          ExtendedCreateFlags;
  PVOID                             EaBuffer;
  ULONG                             EaLength;
  PEXTENDED_CREATE_DUAL_OPLOCK_KEYS DualOplockKeys;
} EXTENDED_CREATE_INFORMATION, *PEXTENDED_CREATE_INFORMATION;

成員

ExtendedCreateFlags

擴充建立的旗標。 ExtendedCreateFlags 可以是下列其中一個值。 指定這其中一個旗標時,NtCreateFile的檔案物件會標示為在 fileObjectExtension 中開啟複製意圖。 篩選可以藉由呼叫 ioCheckFileObjectOpenedAsCopySourceIoCheckFileObjectOpenedAsCopyDestination 來檢查此儲存狀態

意義
EX_CREATE_FLAG_FILE_SOURCE_OPEN_FOR_COPY (0x00000001) 表示檔案正在開啟為檔案複本的來源檔案。
EX_CREATE_FLAG_FILE_DEST_OPEN_FOR_COPY (0x00000002) 表示檔案正在開啟為檔案複本的目的地檔案。

上述其中一個旗標的存在不足以確保檔案物件上的讀取/寫入(I/O 作業)值得信任,因為任何使用者模式進程都可以在建立時提供這些旗標。

EaBuffer

擴充屬性緩衝區的指標。

EaLength

EaBuffer 指向的緩衝區長度。

DualOplockKeys

言論

下列範例示範如何提供 EXTENDED_CREATE_INFORMATION 結構來 NtCreateFile,在內部適當包裝 EaBufferEaLength

// Input parameters to NtCreateFile. Obtaining these
// values is not shown in this sample.

HANDLE SourceFile; 
ACCESS_MASK DesiredAccess; 
OBJECT_ATTRIBUTES ObjectAttributes; 
IO_STATUS_BLOCK IoStatus; 
ULONG FileAttributes; 
ULONG ShareAccess; 
ULONG CreateDisposition; 
ULONG CreateOptions; 
PVOID EaBuffer = NULL; 
ULONG EaLength = 0; 
EXTENDED_CREATE_INFORMATION ExtendedCreateInfo; 

// Populate the extended create info. The
// ExtendedCreateFlags field could also be
// EX_CREATE_FLAG_FILE_DESTINATION_OPEN_FOR_COPY.
 
ExtendedCreateInfo.EaBuffer = EaBuffer; 
ExtendedCreateInfo.EaLength = EaLength; 
ExtendedCreateInfo.ExtendedCreateFlags = EX_CREATE_FLAG_FILE_SOURCE_OPEN_FOR_COPY; 

// Set the create option flag to indicate the
// EaBuffer actually contains extended create info.
 
CreateOptions |= FILE_CONTAINS_EXTENDED_CREATE_INFORMATION; 

// Open the file 

Status = NtCreateFile(&SourceFile, 
                      DesiredAccess, 
                      &ObjectAttributes, 
                      &IoStatus, 
                      NULL, 
                      FileAttributes, 
                      SharseAccess, 
                      CreateDisposition, 
                      CreateOptions, 
                      &ExtendedCreateInfo, 
                      sizeof(EXTENDED_CREATE_INFORMATION));

如需詳細資訊,請參閱 核心模式檔案複製和偵測的複製檔案案例。

要求

要求 價值
最低支援的用戶端 Windows 11 版本 22H2
標頭 wdm.h (包括 Wdm.h)

另請參閱

IoCheckFileObjectOpenedAsCopyDestination

IoCheckFileObjectOpenedAsCopySource

NtCopyFileChunk

NtCreateFile