共用方式為


EXTENDED_CREATE_INFORMATION結構 (wdm.h)

EXTENDED_CREATE_INFORMATION 結構是在 NtCreateFile 的 CreateOption 參數中設定FILE_CONTAINS_EXTENDED_CREATE_INFORMATION旗標時,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