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 中的複製意圖開啟。 篩選可以藉由呼叫 IoCheckFileObjectOpenedAsCopySource 或 IoCheckFileObjectOpenedAsCopyDestination 來檢查此儲存狀態
旗標 | 意義 |
---|---|
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,並在內部正確包裝 EaBuffer 和 EaLength 。
// 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