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。
- ParameterBlockOffset 和 ParameterBlockLength 成员指定通知作的参数块的位置和大小。 参数块的格式设置为DEVICE_DSM_NOTIFICATION_PARAMETERS结构。
- 如果 标志 成员设置为零,DataSetRangesOffset,DataSetRangesLength 成员指定 IOCTL 有效负载中的数据集范围块。
- 如果 标志 成员设置为DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE,DataSetRangesOffset 和 DataSetRangesLength 成员设置为零,并且通知作包括指定文件的整个数据集范围。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 7 |
支持的最低服务器 | Windows Server 2008 R2 |
标头 | ntddstor.h (包括 Ntddstor.h) |