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

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

意义
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结构。
  • 如果 标志 成员设置为零,DataSetRangesOffsetDataSetRangesLength 成员指定 IOCTL 有效负载中的数据集范围块。
  • 如果 标志 成员设置为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