wdm.h) (EXTENDED_CREATE_INFORMATION 结构
在 NtCreateFile 的 CreateOption 参数中设置FILE_CONTAINS_EXTENDED_CREATE_INFORMATION标志时,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
注解
以下示例演示如何向 NtCreateFile 提供EXTENDED_CREATE_INFORMATION结构,并在内部正确包装 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