DEVICE_DSM_NOTIFICATION_PARAMETERS 结构 (ntddstor.h)

DEVICE_DSM_NOTIFICATION_PARAMETERS 结构指定与设备数据集属性相关的通知操作的参数。

语法

typedef struct _DEVICE_DSM_NOTIFICATION_PARAMETERS {
  ULONG Size;
  ULONG Flags;
  ULONG NumFileTypeIDs;
  GUID  FileTypeID[ANYSIZE_ARRAY];
} DEVICE_DSM_NOTIFICATION_PARAMETERS, *PDEVICE_DSM_NOTIFICATION_PARAMETERS;

成员

Size

此结构的总大小(以字节为单位)。 此成员的值必须包括 FileTypeID 成员的总大小(以字节为单位)。

Flags

一个指定通知操作特征的标志。 Flags 成员必须设置为以下值之一:

标志 含义
DEVICE_DSM_NOTIFY_FLAG_BEGIN 逻辑块地址 (LBA) 范围当前正由 FileTypeID 成员中指定的文件类型使用。 LBA 范围由 IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 请求有效负载内的数据集范围指定。
DEVICE_DSM_NOTIFY_FLAG_END FileTypeID 成员中指定的文件类型不再使用 LBA 范围。

NumFileTypeIDs

FileTypeID 成员中的条目数。

FileTypeID[ANYSIZE_ARRAY]

指定通知操作的文件类型的一个或多个 GUID 值。 下表描述了 FileTypeID GUID 值。

GUID 值 说明
FILE_TYPE_NOTIFICATION_GUID_PAGE_FILE 指定页面文件的通知操作。
FILE_TYPE_NOTIFICATION_GUID_HIBERNATION_FILE 指定系统休眠文件的通知操作。
FILE_TYPE_NOTIFICATION_GUID_CRASHDUMP_FILE 指定系统故障转储文件的通知操作。

注解

通知在 IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 请求的有效负载内的参数块中指定。 有关有效负载布局的一般说明,请参阅 数据集管理概述

从 Windows 7 开始,当一组指定文件 (LBA) 数据集范围的逻辑块寻址时,NTFS 文件系统会通知存储堆栈。 文件系统通过向存储堆栈发送 包含DEVICE_DSM_INPUT结构的IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 请求 来发出此 通知。 对于通知操作,文件系统设置DEVICE_DSM_INPUT结构的成员,如下所示:

  • Action 成员设置为 DeviceDsmAction_Notification
  • ParameterBlockOffsetParameterBlockLength 成员指定通知操作的参数块的位置和大小。 参数块的格式设置为DEVICE_DSM_NOTIFICATION_PARAMETERS结构。
  • 如果 Flags 成员设置为零, 则 DataSetRangesOffsetDataSetRangesLength 成员指定 IOCTL 有效负载中的数据集范围块。
  • 如果将 Flags 成员设置为 DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE, 则 DataSetRangesOffsetDataSetRangesLength 成员将设置为零,并且通知操作包括指定文件的整个数据集范围。

要求

要求
最低受支持的客户端 Windows 7
最低受支持的服务器 Windows Server 2008 R2
标头 ntddstor.h (包括 Ntddstor.h)

另请参阅

数据集管理概述

DEVICE_DSM_ACTION 说明

DEVICE_DSM_INPUT

IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES