Win32 系统信息函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)GetSystemMetrics ┄返回Windows环境信息。
均返回设备单位(像素数)。
原型:int GetSystemMetrics(int nIndex);//由nIndex指定欲获取的信息
nIndex 说明nIndex 说明
SM_CXSCREEN SM_CYSCREEN 屏幕分辨率SM_CMONITORS 监视器个数
SM_CXFULLSCREEN SM_CYFULLSCREEN 最大化的窗口宽/高SM_CYMENU 菜单栏(条)高度
SM_CXMIN SM_CYMIN最小化的窗口宽/高SM_ARRANGE 系统排列最小化窗口的方式(方式值列下表)
SM_CXMAXIMIZED SM_CYMAXIMIZED 最大化的窗口客户区宽/高SM_SHOWSOUNDS 提示信息为"显示加声音",返回非0,否则返回0。
SM_CXMINIMIZED SM_CYMINIMIZED 最小化的窗口客户区宽/高SM_MENUDROPALIGNMENT 弹出式菜单对齐菜单项的方式。
0表示左侧对齐,非0右侧对齐。
SM_CXICON SM_CYICON 标准图标宽/高SM_CLEANBOOT 系统启动方式:0=正常启动,1=安全模式,2=网络安全模式。
SM_CXSMIC ON SM_CYSMICON 窗口左上角的小图标宽/高SM_MOUSEPRESENT 系统是否安装了鼠标。
是则返回非0,否则返回0。
SM_CXICONSPACING SM_CYICONSPACING 桌面的图标排列的水平、垂直间距SM_MOUSEWHEELPRESENT 系统是否安装了带轮鼠标。
是则返回非0,否则返回0。
SM_CXEDGE SM_CYEDGE 三维边框宽/高SM_CMOUSEBUTTONS 鼠标上的按键数。
返回0表示系统中未安装鼠标。
SM_CYCAPTION SM_CYSMCAPTION 标题栏、小标题栏高度SM_SWAPBUTTON 鼠标左右键交换标志。
返回非0表示交换,0没有交换。
SM_CXSIZE SM_CYSIZE 标题栏上的[按钮]的宽/高SM_NETWORK 系统是否安装了网络。
安装则设置位0,其它位保留未用。
SM_CXSMSIZE SM_CYSMSIZE 小标题栏[按钮]宽/高SM_REMOTECONTROL 系统是否为服务终端,受远程遥控,返回非0,否则返回0。
SM_CXMENUSIZE SM_CYMENUSIZE 菜单栏[按钮]宽/高SM_REMOTESESSION 若调用过程同客户端相连,返回非0值,同控制台会话联系统,返回0。
SM_CXMENUCHECK SM_CYMENUCHECK 菜单项"复选标记位图"的宽/高SM_SLOWMACHINE 低速CPU标志。
是则返回非0,否则返回0。
SM_CXMAXTRACK SM_CYMAXTRACK "可调边框"窗口的最大宽/高SM_SAMEDISPLAYFORMAT 若所有监视器为同一颜色格式,返回非0,否则返回0。
SM_CXMINTRACK SM_CYMINTRACK "可调边框"窗口的最小宽/高SM_DBCSENABLED 若User32.dll支持DBCS字符集,返回非0,否则返回0。
SM_CXFRAME SM_CYFRAME "可调边框"窗口竖边框宽度/横边框高度SM_IMMENABLED 输入法"使能",返回非0,否则返回0。
SM_CXSIZEFRAME SM_CYSIZEFRAME SM_PENWINDOWS 安装Windows笔设备,返回非0;未安装,返回0。
SM_CXBORDER SM_CYBORDER 不"可调边框"窗口竖边框宽度/横边框高度SM_SERVERR2 若系统是WinServer2003 R2,返回版本号,否则返回0。
SM_CXDLGFRAME SM_CYDLGFRAME "对话框"窗口竖边框宽度/横边框高度SM_TABLETPC 当前操作系统是XP平板电脑,返回非0;否则,为V ist a或Win7平板电脑。
SM_CXFIXEDFRAME SM_CYFIXEDFRAME SM_STARTER当前操作系统是Win7、V ista或xp,返回非0;否则,返回0。
SM_CXHSCROLL SM_CYHSCROLL 水平滚动条宽/高SM_MEDIACENTER 当前操作系统是xp媒体中心版,返回非0;否则,返回0。
SM_CXVSCROLL SM_CYVSCROLL 垂直滚动条宽/高SM_MIDEASTENABLED 若系统为希伯来语和阿拉伯语言使能,返回非0,否则返回0。
SM_CXHTHUMB SM_CYVTHUMB 水平、垂直滚动条滑块宽/高SM_CYKANJIWINDOW 日文汉字窗口的高度
SM_CXVIRTUALSCREEN SM_CYVIRTUALSCREEN 虚拟屏幕宽/高SM_DEBUG 调试版标志。
安装调试版,返回非0,否则返回0。
SM_XVIRTUALSCREEN SM_YVIRTUALSCREEN 虚拟屏幕原点坐标(x,y)SM_SECURE 安全模式标志
SM_CXCURSOR SM_CYCURSOR 鼠标指针(光标)宽/高SM_DIGITIZER Win7以上版本。
SM_CXDOUBLECLK SM_CYDOUBLECLK 双击矩形宽/高(双击鼠标时两次点击的位置点必须限定在该区域内)
SM_CXDRAG SM_CYDRAG 拖动矩形宽/高(为防止无目的拖动,在起始拖动点定义一个矩形,鼠标在其内拖动不认为是拖放操作)
SM_CXMINSPACING SM_CYMINSPACING 排列最小化窗口时为其分配的方格宽/高,应≥SM_CXMINIMIZED和SM_CYMINIMIZED。
SM_CXFOCUSBORDER SM_CYFOCUSBORDER Win2000:焦点矩形宽高,WinXP不再支持。
该矩形是由DrawFocusRect绘制的。
备注:视频显示器的分辨率分别以水平和垂直的总像素数表示。
如1024×768;打印机的分辨率则是以"每英寸的点数(dpi)"来表示。
如激光打印机的分辨率为600dpi等。
字体的字母大小通常用"磅"表示,1磅≈1/72英寸。
选择小字体时,Win32假定视频显示分辨率为96点/英寸;选择大字体时,则假设为120点/英寸。
逻辑像素数不是以每英寸的像素数为单位的实际分辨率。
排列方式
起始位置说明方向说明
数
字
仪
类
型
值说明
ARW_BOTTOMLEFT 屏幕左下角,默认位置ARW_DOWN从上到下纵向排列NID_INTEGRATED_TOUCH 设备具有集成的触摸数字化仪
安装在
Win7或Server2008上的
数字化仪类型ARW_BOTTOMRIGHT 屏幕右下角ARW_UP 从下到上纵向排列NID_EXTERNAL_TOUCH 设备具有外部触摸数字化仪
ARW_TOPLEFT 屏幕左上角ARW_LEFT 从左到右水平排列NID_INTEGRATED_PEN 设备具有集成的笔数字化仪
ARW_TOPRIGHT 屏幕右上角ARW_RIGHT 从右到左水平排列NID_EXTERNAL_PEN 设备具有外部笔数字化仪
ARW_HIDE 隐藏NID_MUL TI_INPUT 设备支持多个输入源的数字化仪
NID_READY 准备好接收数字化仪输入设备
(2)GetDeviceCaps ┄返回hdc设备的相关信息(设备能力)。
原型:int GetDeviceCaps(HDC hdc,//设备描述表句柄
int nIndex);备注:在多显示系统中,若hdc指定桌面,则返回主显示器的信息。
返回值:列下表
Index 返回值Index 返回值Index 返回值DRIVERVERSION设备驱动程序版本NUMPENS设备特有的画笔数SCALINGFACTORX 打印机X轴方向缩放系数HORZSIZE 屏幕宽度(毫米)NUMBRUSHES 设备特有的画刷数SCALINGFACTORY 打印机Y轴方向缩放系数HORZSIZE 屏幕宽度(毫米)NUMFONTS 设备特有的字体数
VERTSIZE 屏幕高度(毫米)NUMCOLORS 当设备支持颜色数≤256时,返回设备调色板的颜色数;>256时,返回-1,这时可用BITSPIXEL返回颜色数。
LOGPIXELSX 水平方向"像素数/每英寸"
逻辑分辨率NUMRESERVED 设备驱动程序为系统保留的颜色数
仅在设备驱动程序设置RASTERCAPS索引的RC_PALETTE位后才有效
LOGPIXELSY 垂直方向"像素数/每英寸"SIZEPALETTE 显卡的调色板查找表的总大小
HORZRES 水平像素数,打印页的可打印域宽(点数)COLORRES 显卡的调色板查找表中RGB值的分辨率
VERTRES 垂直像素数,打印页的可打印域高(点数)CLIPCAPS 显示设备"裁剪性能"支持标志。
若设备支持裁剪矩形,返回非0;若不能,返回0。
VREFRESH 屏幕刷新频率(Hz)BL TALIGNMENT在NT中作为像素倍数的水平绘图调整(好的绘图软件,窗口绘图应是水平调整到此值的倍数)
BITSPIXEL 标识"单个像素"颜色的bit数PHYSICAL WIDTH 打印设备,物理页面宽度,设备单位
PLANES 设备所使用的颜色平面数PHYSICALHEIGHT 打印设备,物理页面高度,设备单位
ASPECTX 一个像素的逻辑宽度PHYSICALOFFSETX 打印设备,物理页面左边缘到可打印区域左边缘的距离,设备单位
ASPECTY 一个像素的逻辑高度PHYSICALOFFSETY 打印设备,物理页面上边缘到可打印区域上边缘的距离,设备单位
ASPECTXY 一个像素的对角线的逻辑宽度PDEVICESIZE 系统保留,PDEVICE内部结构大小
设备技术功能(Index=TECHNOLOGY)多边形功能(Index=POL YGONALCAPS)画线功能(Index=LINECAPS)文本功能(Index=TEXTCAPS)返回值含义返回值含义返回值含义返回值含义
DT_PLOTTER矢量绘图仪PC_NONE 不支持多边形LC_NONE 不支持画线TC_OP_CHARACTER 能实现字符输出精度
DT_RASDISPLAY 光栅显示器PC_INTERIORS 能作内部填充LC_INTERIORS 能作内部填充TC_OP_STROKE 能实现画笔输出精度
DT_RASPRINTER 光栅打印机PC_POL YGON 能画并填充多边形LC_MARKER 能画标记TC_CP_STROKE 能实现画笔裁剪精度
DT_RASCAMERA 光栅相机PC_RECTANGLE 能画矩形LC_POL YLINE 能画多条连线(polyline)TC_CR_90 能作90度的字符旋转
DT_CHARSTREAM 字符流PC_SCANLINE 能画扫描线LC_POL YMARKER 能画多个标记TC_CR_ANY 能作任意角度的字符旋转DT_METAFILE 图元文件PC_STYLED 能画样式边框LC_STYLED 能画样式线TC_SF_X_YINDEP 能在X,Y上按不等比例绘制DT_DISPFILE 显示文件PC_WIDE 能画宽边框LC_WIDE 能画宽线TC_SA_DOUBLE 能画按比例放大一倍的字符
PC_WIDESTYLED 能画宽样式边框LC_WIDESTYLED 能画宽样式线TC_SA_INTEGER能按比例放大任意整数倍数
PC_WINDPOL YGON 能画并填充多边形TC_SA_CONTIN能按确切比例放大任意倍数光栅功能(Index=RASTERCAPS)阴影与混合功能(Index=SHADEBLENDCAPS)曲线功能(Index=CURVECAPS)TC_EA_DOUBLE 能画粗体字符返回值含义返回值含义返回值含义TC_IA_ABLE 能画斜体字符
RC_BANDING 支持片段化输出SB_CONST_ALPHA 处理BLENDFUNCTION结构CC_NONE 不支持曲线TC_UA_ABLE 能画带下划线的字符
RC_BITBLT 支持BitBlt,PatBlt函数SB_GRAD_RECT 支持GradientFill矩形绘制CC_CHORD 能画弦图TC_SO_ABLE 能画带删除线的字符
RC_BITMAP64 支持>64KB的位图SB_GRAD_TRI 支持GradientFill多边形绘制CC_CIRCLES 能画饼图(扇形)TC_RA_ABLE 能画光栅字体
RC_DI_BITMAP 支持SetDIBits和GetDIBits SB_NONE 不支持以上功能之一CC_ELLIPSES 能画椭圆TC_VA_ABLE 能画向量字体
RC_DIBTODEV 支持SetDIBitsToDevice SB_PIXEL_ALPHA 支持AlphaBlend像素透明处理CC_INTERIORS 能作内部填充TC_RESERVED 保留,必须是0
RC_FLOODFILL 支持漫延填充SB_PREMUL T_ALPHA 支持AlphaBlend渐变CC_PIE 能画饼图并填充TC_SCROLLBL T 设备不能使用移位阻止滚动RC_PALETTE 支持调色板颜色管理功能(Index=COLORMGMTCAPS)CC_ROUNDRECT 能画矩形边框
RC_SCALING 支持按比例绘图返回值含义CC_STYLED 能画样式边框
RC_STRETCHBLT支持StretchBlt函数CM_CMYK_C OLOR支持CMYK空间ICC CC_WIDE 能画宽边框
RC_STRETCHDIB 支持StretchDIBits函数CM_DEVICE_IC M 支持ICM CC_WIDESTYLED 能画宽边框和样式边框
CM_GAMMA_RAMP 支持SetDeviceGammaRamp函数
CM_NONE 不支持ICM
(3)SystemParametersInfo ┄获取或设置系统级参数(设置时将更新用户配置文件)。
原型:BOOL SystemParametersInfo(UINT uiAction,//设置或获取的系统级参数
UINT uiParam,//依赖于uiAction值
in/out PVOID pvParam,//依赖于uiAction值
UINT fWinIni);//标志(指定函数是否更新配置文件)fWinIni = SPIF_UPDATEINIFILE┄更新系统设置并写参数到用户配置文件中;
SPIF_SENDCHANGE┄更新系统设置并向整个系统发送WM_SETTINGCHANGE消息;
SPIF_SENDWININICHANGE┄与SPIF_SENDCHANGE相同;
返回值:调用成功,返回TRUE;否则,返回FALSE。
uiAction 返回输入特性
SPI_GETMOUSESPEED 获取鼠标指针移动速度。
pvParam→整型变量,该变量接收1(最慢)至20(最快)之间的值,缺省值10。
SPI_GETWHEELSCROLLLINES 获取"垂直滚动时,滚动鼠标轮一个齿格",滚动的文本行数。
pvParam→整型变量(接收行数,缺省值是3)。
SPI_GETWHEELSCROLLCHARS 获取"水平滚动时,滚动鼠标轮一个齿格",滚动的字符数。
pvParam→整型变量(接收字符数,缺省值是3)。
SPI_GETMOUSETRAILS 有无"鼠标踪迹显示(通过短暂显示鼠标指针并迅速擦除以呈现鼠标运行轨迹)"特性。
pvParam→整型变量(接收值=0或1,有此特性,>1无此特性)。
SPI_GETMOUSE 获取鼠标的两个阈值和加速特性。
pvParam→长度为3个元素的整型数组,分别存贮此值。
SPI_GETSNAPTODEFBUTTON 是否启用"跳转至缺省按钮"特性。
pvParam→BOOL变量(接收值=TRUE启用,=FALSE禁用)。
SPI_GETMOUSEHOVERTIME 获取在TrackMouseEvent事件中为产生WM_MOUSEHOVER使鼠标必须停留在矩形框内的时间。
pvParam→整型变量(接收毫秒数)。
SPI_GETMOUSEHOVERHEIGHT 获取在TrackMouseEvent事件中为产生WM_MOUSEHOVER而定义的矩形,鼠标只有停留在矩形内才产生消息。
pvParam→整型变量(接收高度值)。
SPI_GETMOUSEHOVERWIDTH 获取在TrackMouseEvent事件中为产生WM_MOUSEHOVER而定义的矩形,鼠标只有停留在矩形内才产生消息。
pvParam→整型变量(接收宽度值)。
SPI_GETBEEP 系统"警告蜂鸣器"是否打开。
如果蜂鸣器处于"打开"状态,pvParam←TRUE;否则pvParam←FALSE。
SPI_GETBLOCKSENDINPUTRESETS 应用是否可调用SendInput模拟键盘(或鼠标)输入。
pvParam→布尔变量(接收值=TRUE,允许;接收值=FALSE,禁用)。
SPI_GETDEF AULTINPUTLANG 获取用于系统缺省输入语言的输入法句柄。
pvParam→句柄变量(接收输入法句柄)。
SPI_GETKEYBOARDDELAY 获取重复击键延迟设置,该值范围0~3(约250ms~1s延迟)。
pvParam→整型变量(接收设置值)。
SPI_GETKEYBOARDSPEED 获取重复击键速度设置,该值范围0~31(约30次/秒~2.5次/秒)。
pvParam→整型变量(接收设置值)。
SPI_GETKEYBOARDPREF 系统是否优先使用键盘而非鼠标。
pvParam→布尔变量(接收值=TRUE,依赖键盘;=FALSE,依赖鼠标)。
SPI_GETKEYBOARDCUES 菜单访问键是否始终带下划线。
pvParam→布尔变量(接收值=TRUE,始终带下划线;=FALSE,不带)。
uiAction 设置输入特性
SPI_SETMOUSESPEED 设置鼠标指针移动速度。
pvParam→1~20(最慢~最快)之间的整数,缺省值是10。
也可在控制面板中设置。
SPI_SETWHEELSCROLLLINES 设置"垂直滚动时,滚动鼠标轮一个齿格",滚动的文本行数。
uiParam=行数。
SPI_SETWHEELSCROLLCHARS 设置"水平滚动时,滚动鼠标轮一个齿格",滚动的字符数。
uiParam=字符数。
SPI_SETMOUSE 设置鼠标的两个阀值和加速率。
pvParam→长度为3的数组,以指定这些值。
SPI_SETMOUSETRAILS 显示或隐藏"鼠标指针踪迹"。
uiParam=0或1,隐藏踪迹;uiParam>1,显示踪迹(该值表示轨迹中画出的光标个数)。
SPI_SETSNAPTODEFBUTTON启用或禁用"跳转至缺省按钮"特性。
uiParam=TRUE鼠标指针会自动移至缺省按钮上;uiParam=FALSE禁止此功能。
SPI_SETMOUSEBUTTONSWAP 交换或恢复鼠标左右键功能。
uiParam=TRUE交换鼠标左右铵键功能,uiPa ram=FALSE恢复原左右键功能。
SPI_SETMOUSEHOVERTIME 设置鼠标指针在"停留区域"的停留时间。
uiParam=停留时间值。
SPI_SETMOUSEHOVERHEIGHT 设置鼠标指针"停留区域"的高度,以像素为单位。
uiParam=新高度值。
SPI_SETMOUSEHOVERWIDTH 设置鼠标指针"停留区域"的宽度,以像素为单位。
uiParam=新宽度值。
SPI_SETDOUBLECLICKTIME 设置鼠标双击"间隔时间"。
uiParam=时间值(毫秒)。
也可使用SetDoubleClickTime设置,获取该时间可用GetDoubleClickTime函数。
SPI_SETDOUBLECLKHEIGHT 设置鼠标双击"矩形区域"高度。
uiParam=高度值。
该"矩形区域"是指双击时"第2次鼠标指针必须落在该区域",这样才能记录为双击。
SPI_SETDOUBLECLKWIDTH 设置鼠标双击"矩形区域"宽度。
uiParam=宽度值。
SPI_SETBEEP 打开或关闭"警告蜂鸣器"。
uiParam=TRUE打开蜂鸣器,uiParam=FALSE关闭蜂鸣器。
SPI_SETBLOCKSENDINPUTRESETS 指定应用程序是否可调用SendInput来模拟键盘或鼠标输入。
uiParam=TRUE允许模拟输入,uiParam=FALSE禁用模拟输入。
SPI_SETDEFAULTINPUTLANG 设置系统缺省语言的输入法。
pvParam指向DWORD变量,该变量包含用于缺省语言的输入法句柄。
SPI_SETLANGTOGGLE 设置"输入法切换"热键。
通过修改注册表设置热键,路径HKEY_CURRENT_USER\Keyboard Layout\Toggle。
"1"=Alt+shift,"2"=Ctrl+shift,"3"=none(无)。
SPI_SETKEYBOARDCUES
SPI_SETKEYBOARDPREF 设置键盘优先。
如果用户依赖键盘而不是鼠标,uiParam=TRUE;否则,uiParam=FALSE。
SPI_SETKEYBOARDDELAY 设置按键重复击键延迟。
uiParam=0,1,2或3。
0表示最短延迟(约250ms),3表示最大延迟(约1秒)。
实际延迟时间与硬件有关。
SPI_SETKEYBOARDSPEED 设置重复击键速率。
uiParam=0~31。
0表示最快速度(约30次/秒),31表示最低速度(大约2.5次/秒)。
实际击键速率与硬件有关,线性变动幅度可高达20%。
uiAction 窗口特性
SPI_GETACTIVEWINDOWTRACKING 是否打开"活动窗口跟踪"(激活鼠标下的窗口)。
pvParam指向一个BOOL变量,返回TRUE表示打开,FALSE表示关闭。
SPI_GETACTIVEWNDTRKZORDER 通过活动窗口跟踪而激活的窗口是否被置于Z序最顶层。
pvParam指向一个BOOL变量,返回TRUE表示在Z序顶层,FALSE表示不在Z序顶层。
SPI_GETACTIVEWNDTRKTIMEOUT 获取"活动窗口跟踪"延迟。
pvParam指向一个DWORD变量,用来接收延迟时间,单位为毫秒。
SPI_GETANIMATION 获取与用户操作相关的动画效果。
pvParam指向ANIMATIONINFO结构以接收信息,该结构的cbSize成员和uiParam=sizeof(ANIMATIONINFO)。
SPI_GETBORDER 返回决定窗口边框放大宽度的放大因子。
pvParam指向一个整型变量以接收该值。
SPI_GETCARETWIDTH 获取插入符宽度。
pvParam指向一个DWORD变量,以接收该值。
SPI_GETDRAGFULLWINDOWS 是否允许拖动整个窗口。
pvParam指向BOOL变量,如果允许,返回值为TRUE,否则为FALSE。
SPI_GETFOREGROUNDFLASHCOUNT返回"拒绝前台切换申请"时系统闪烁任务条"按钮图标"的频率。
pvParam指向DWORD变量,以接收该值。
SPI_GETFOREGROUNDLOCKTIMEOUT 返回系统"禁止应用程序强行将自己进入前台"的时间量,单位为毫秒.pvParam指向DWORD变量,以接收时间值。
SPI_GETMINIMIZEDMETRICS 获取最小化窗口的度量数据。
pvParam指向MINIMIZEDMETRIC S结构以接收信息,uiParam值应设为sizeof(MINIMIZEDMETRICS)。
SPI_GETNONCLIENTMETRICS 获取"正常窗口非客户区"的各种度量值。
pvParam指向NONCLIENTMETRIC S结构以便接收相应值。
uiParam值应设为sizeof(NONCLIENTMETRICS)。
SPI_GETSHOWIMEUI
SPI_SETACTIVEWINDOWTRACKING 打开或关闭"活动窗口跟踪"(激活该窗口时鼠标置为开状态)。
设置pvParam=TRUE打开跟踪,pvParam=FALSE关闭跟踪。
SPI_SETACTIVEWNDTRKZORDER 是否把通过"活动窗口跟踪"开关激活的窗口置于Z序最顶层。
设置pvParam=TRUE置于最顶层,pvParam=FALSE不置于最顶层。
SPI_SETACTIVEWNDTRKTIMEOUT 设置"活动窗口跟踪"延迟时间。
设置pvParam=延迟时间,单位为毫秒。
SPI_SETANIMA TION设置与用户操作相关的动画效果。
pvParam指向ANIMATIOINFO结构,设置uiParam=sizeof(ANIMATIONINFO)。
SPI_SETBORDER 设置确定窗口缩放边界的边界放大因子。
uiParam=放大因子值。
SPI_SETCARETWIDTH 设置插入符宽度。
设置pvParam=宽度值,默认最小宽度是1像素。
SPI_SETDRAGFULLWINDOWS 设置是否允许拖至最大窗口。
uiParam=TRUE允许,uiParam=FALSE不允许。
SPI_SETDRAGHEIGHT 设置"用于检测拖动操作起点的矩形区域"高度,单位为像素。
参考GetSystemMetrics函数的nIndex的SM_CXDRAG和SM_CYDRAG。
SPI_SETDRAGWIDTH 设置"用于检测拖动操作起点的矩形区域"宽度,单位为像素。
SPI_SETFOREGROUNDFLASHCOUNT设置"拒绝前台切换申请"时系统"闪烁任务拦图标"的频率。
调用SetForegroundWindow函数可将窗口切换到前台。
SPI_SETFOREGROUNDLOCKTIMEOUT 设置系统禁止应用程序强行将自己进入前台的时间,单位为毫秒。
pvParam=新的时间限度值。
SPI_SETMINIMIZEDMETRICS 设置最小化窗口的度量数据。
pvParam指向包含新参数的MINIMIZEDMETRIC S结构,uiParam应设为sizeof(MINMIZEDMETRICS)。
SPI_SETNONCLIENTMETRICS 设置"正常窗口非客户区"的各种度量值。
pvParam指向NONCLIENTMETRIC S结构(包含新参数),uiParam值应设为sizeof(NONCLIENTMETRICS)。
SPI_SETSH OWIMEUI
uiAction 桌面特性
SPI_GETWORKAREA 获取主显示屏幕工作区(没有被系统任务栏遮盖的区域)大小。
pvParam指向RECT结构以接收坐标值(屏幕坐标)。
SPI_GETDESKWALLPAPER 获取桌面壁纸。
SPI_GETDROPSHADOW
SPI_GETFLATMENU
SPI_GETFONTSMOOTHING 字体平滑处理是否允许(使用字体保真技术,通过在不同灰度级上涂上像素使字体曲线显得平滑)。
pvParam←TRUE表示平滑允许,否则pvParam←FALSE。
SPI_GETFONTSMOOTHINGCONTRAST
SPI_GETFONTSMOOTHINGORIENTATION
SPI_GETFONTSMOOTHINGTYPE
SPI_SETDESKPATTERN 设置桌面显示模式。
通过让Windows从Win.ini文件中读取"pattern=设置"来完成操作。
SPI_SETCURSORS 重置系统光标。
设置uiParam=0,pvParam=NULL。
SPI_SETWORKAREA 设置主显示屏幕工作区(没有被系统任务栏遮盖的区域)大小。
pvParam指向RECT结构,包含工作区坐标。
SPI_SETDESKWALLPAPER 设置桌面壁纸。
pvParam指向一个位图文件名。
举例:SystemParametersInfo(SPI_SETDESK WALLPAPER,0,图片路径,SPIF_UPDATEINIFILE);
SPI_SETDROPSHADOW
SPI_SETFLATMENU
SPI_SETFONTSMOOTHING 启用或禁用"字体平滑"特性。
uiParam=TRUE允许,uiParam=FALSE禁止。
该特性使用字体保真技术,通过在不同灰度级上涂画像素点使字体曲线显得更加平滑。
SPI_SETFONTSMOOTHINGCONTRAST
SPI_SETFONTSMOOTHINGORIENTATION
SPI_SETFONTSMOOTHINGTYPE
uiAction 屏幕特性
SPI_GETSCREENSAVEACTIVE 判定屏幕保护是否处于可激活状态。
pvParam指向BOOL变量,是则该值为TRUE,否则为FALSE。
SPI_GETSCREENSAVERRUNNING 判定当前系统是否正在运行屏幕保护程序。
pvParam指向BOOL变量,是则该值为TRUE,否则为FALSE。
SPI_GETSCREENSAVETIMEOUT 获取屏幕保护程序的定时值。
pvParam指向一个整型变量,以保存获取的定时值(秒)。
SPI_SETSCREENSAVEACTIVE
SPI_SETSCREENSAVETIMEOUT 设置屏幕保护程序的定时值。
uiParam=新的定时值,pvParam=NULL。
uiAction 菜单特性
SPI_GETMENUDROPALIGNMENT弹出式菜单相对于菜单条项是左对齐还是右对齐。
pvParam指向一个BOOL变量,若是左对齐,该变量值为TRUE,否则为FALSE。
SPI_GETMENUFADE
SPI_GETMENUSHOWDELAY
SPI_SETMENUDROPALIGNMENT设置弹出式菜单的对齐方式。
uiParam=TRUE右对齐,uiParam=FALSE左对齐。
SPI_SETMENUFADE
SPI_SETMENUSHOWDELAY
uiAction 电源特性
SPI_GETLOWPOWERACTIVE 屏幕保护时是否处于省电状态。
如果是省电状态,pvParam←TRUE;否则,pvParam←FALSE。
SPI_GETPOWEROFF ACTIVE 屏幕保护特性是否被关闭。
如果关闭,pvParam←TRUE;否则,pvParam←FALSE。
SPI_GETLOWPOWERTIMEOUT 系统进入省电模式的时间限额。
pvParam指向一个整型变量,以接收该时间限额值。
SPI_GETPOWEROFFTIMEOUT
SPI_SETLOWPOWERACTIVE 激活或关闭屏幕保护时的省电特性。
uiParam=1激活,uiParam=0关闭;pvParam=NULL。
SPI_SETPOWEROFFACTIVE 激活或关闭屏幕保护特性。
uiParam=1激活,uiParam=0关闭;pvParam=NULL。
SPI_SETLOWPOWERTIMEOUT 设置省电屏幕保护的时间(即在超过某一时间段后自动进行屏幕保护),单位为秒。
uiParam=新时间值,pvParam=NULL。
SPI_SETPOWEROFFTIMEOUT
uiAction 控件特性
SPI_GETCOMBOBOXANIMATION 组合框在鼠标经过时是否允许自动打开。
pvParam指向一个BOOL变量,返回TRUE表示自动打开,FALSE表示鼠标经过时不自动打开。
SPI_GETCURSORSHADOW
SPI_GETGRADIENTCAPTIONS 窗口标题栏是否允许颜色渐变效果。
pvParam指向BOOL变量,TRUE表示允许,FALSE表示不允许。
SPI_GETH OTTRACKING
SPI_GETLISTBOXSMOOTH SCROLLING 列表框是否允许有"平滑滚动"效果。
pvParam指向BOOL变量,TRUE表示允许,FALSE表示不允许有滑动效果。
SPI_GETMENUANIMATION
SPI_GETMENUUNDERLINES
SPI_GETSELECTIONFADE
SPI_GETTOOLTIPANIMATION
SPI_GETTOOLTIPFADE
SPI_GETUIEFFECTS
SPI_SETCOMBOBOXANIMA TION设置组合框在鼠标经过时是否可自动打开。
pvParam=TRUE,表示允许;pvParam=FALSE则表示禁止。
SPI_SETCURSORSHADOW
SPI_SETGRADIENTCAPTIONS 启用或禁用"窗口标题栏的颜色渐变"效果。
pvParam=TRUE允许,pvParam=FALSE禁止。
SPI_SETHOTTRACKING
SPI_SETLISTBOXSMOOTHSCROLLING 启用或禁用"列表框的平滑滚动"效果。
pvParam=TRUE允许平滑滚动效果,pvParam=FALSE禁止平滑滚动效果。
SPI_SETMENUANIMATION 启用或禁用"菜单动画"。
pvParam=TRUE启用,=FALSE禁用。
SPI_SETMENUUNDERLINES 启用或禁用"菜单加下划线"效果。
SPI_SETSELECTIONFADE
SPI_SETTOOLTIPANIMATION
SPI_SETTOOLTIPFADE
SPI_SETUIEFFECTS
uiAction 图标特性
SPI_GETICONMETRICS 获取与图标有关的度量信息。
pvParam指向一个ICONMETRIC S结构以接收信息,该结构的cbSize成员和uiParam为sizeof(ICONMETR ICS)。
SPI_GETICONTITLELOGFONT 获取当前图标标题字体的逻辑字体信息。
pvParam指向要填充的L OGFON T结构,该结构的cbSize成员和uiParam设为sizeof(LOGFONT)。
SPI_GETICONTITLEWRAP 确定是否允许图标标题环绕。
pvParam指向一个BOOL变量,TRUE允许环绕,FALSE不允许环绕。
SPI_ICONHORIZONTALSPACING 设置包含图标的方格宽度。
设置uiParam=新宽度,单位是像素。
SPI_ICONVERTICALSPACING 设置包含图标的方格高度。
设置uiParam=新高度,单位是像素。
SPI_SETIC ONMETRICS 设置与图标有关的度量信息。
pvParam指向包含新参数的ICONMETRIC S结构,该结构的cbSize成员和uiParam设为sizeof(ICONMETR ICS)。
SPI_SETIC ONS 重新加载系统图标。
设置uiParam=0,pvParam=NULL。
SPI_SETIC ONTITLELOGFONT 设置用于图标标题的字体。
pvParam指向L OGFON T结构,该结构的cbSize成员和uiParam指定LOGFONT结构大小。
SPI_SETIC ONTITLEWRAP 打开或关闭标题折行功能。
设置uiParam=TRUE打开折行功能,uiParam=FALSE关闭折行功能。
uiAction 易用特性
SPI_GETACCESSTIMEOUT 获取与可访问特性相关联的超时信息。
pvParam指向ACCESSTIMEOUT结构,该结构的cbSize成员和uiParam设置为sizeof(ACCESSTIMEOUT)。
SPI_GETFILTERKEYS 检索有关过滤键(FIL TERKEYS)易用用特征信息。
pvParam指向用于接收该信息的FIL TERKEYS结构,该结构的cbSize成员和uiParam为sizeof(FIL TERKEYS)。
SPI_GETFOCUSBORDERHEIGHT
SPI_GETFOCUSBORDERWIDTH
SPI_GETH IGHCONTRAST 获取显示器高对比度信息。
pvParam指向用于接收该信息的H IGHCONTRAST结构,该结构的cbSize成员和uiParam设置为sizeof(HIGHCONTRAST)。
SPI_GETMOUSECLICKLOCK
SPI_GETMOUSECLICKLOCKTIME
SPI_GETMOUSEKEYS
SPI_GETMOUSESONAR
SPI_GETMOUSEVANISH
SPI_GETSCREENREADER
SPI_GETSHOWSOUNDS
SPI_GETSOUNDSENTRY
SPI_GETSTICKYKEYS
SPI_GETTOGGLEKEYS
SPI_SETACCESSTIMEOUT 设置与可访问特性有关的时间限度值。
pvParam指向ACCESSTIMEOUT结构,该结构的cbSize成员和uiParam设为sizeof(ACCESSTMEOUT)。
SPI_SETFILTERKEYS 设置FilterKeys易用特性。
pvParam指向包含新参数的FIL TERKEYS结构,该结构的cbSize成员和uiParam设为sizeof(FIL TERKEYS)。
SPI_SETFOCUSBORDERHEIGHT
SPI_SETFOCUSBORDERWIDTH
SPI_SETHIGHCONTRAST 设置显示器高对比度信息。
pvParam指向H IGHCONTRAST结构,该结构的cbSize成员和uiParam设为sizeof(HIGHCONTRAST)。
SPI_SETMOUSECLICKLOCK
SPI_SETMOUSECLICKLOCKTIME
SPI_SETMOUSEKEYS 设置MouseKeys易用特性。
pvParam指向MOUSEKEYS结构,该结构的cbSize成员和uiParam设为sizeof(MOUSEKEYS)。
SPI_SETMOUSESONAR
SPI_SETMOUSEVANISH
SPI_SETSCREENREADER 屏幕审阅程序是否运行。
设置uiparm=TRUE运行该程序,uiparm=FALSE不运行。
SPI_SETSH OWSOUNDS 打开或关闭ShowSounds易用特性。
设置uiParam=TRUE打开,uiParam=FALSE关闭。
SPI_SETSOUNDSENTRY 设置SOUNDSENTRY易用特性。
pvParam指向SOUNDSENTRY结构,该结构的cbSize成员和uiParam应设为sizeof(SOUNDSENTRY)。
SPI_SETSTICKYKEYS 设置stickykeys可访问特性。
pvParam指向STICKYKEYS结构,该结构的cbSize成员和uiParam设为sizeof(STICKYKEYS)。
SPI_SETTOGGLEKEYS 设置togglekeys可访问特性。
pvParam指向TOGGLEKEYS结构,该结构的cbSize成员和uiParam设为sizeof(TOGGLEKEYS)。
(4)DeviceCapabilities ┄检索并返回打印设备驱动程序的性能。
原型:DWORD DeviceCapabilities(LPCTSTR pDevice,//打印机名返回值:调用成功,返回值依赖于fwCapability设置;调用失败,返回-1。
LPCTSTR pPort,//端口名(如LPT1)
WORD fwCapability,//指定要查询的性能
out LPTSTR pOutput,//指向接收缓冲区
const DEVMODE * pDevMode);//指向DEVMODE结构
fwCapability 说明
DC_DRIVER 返回打印驱动程序的版本号。
DC_COPIES 返回打印机所支持的拷贝份数(若设备支持多页拷贝)。
DC_DUPLEX 若打印机支持双向打印,返回1;否则,返回0。
DC_COLLATE 若打印机支持校对,返回1;否则,返回0。
不使用pOutput参数。
DC_BINNAMES 拷贝一个包含一系列纸张接收器名的数组,格式为:char PaperName[cBinMax][cchBinName]; cchBinName=24。
若pOutput=NULL,返回值是所需的接收器项数,否则返回值是接收器的拷贝数。
DC_BINS 返回打印机可用的纸张接收器,pOutput接收一个WORD数组(接收器列表);若pOutput=NULL,返回所支持的接收器的数目(参看DEVMODE的dmDefaultSource说明)。
DC_ENUMRESOLUTIONS 返回所支持的分辨率数量。
pOutput接收一个二维数组[x,y],x表示水平方向点数/每英寸,y表示垂直方向点数/每英寸(xy为LONG类型);若pOutput=NULL,仅返回所支持的分辨率数量。
DC_EXTRA 返回打印驱动的DEVMODE结构中设备专用部分所需的字节。
DC_FIELDS 返回打印驱动的DEVMODE的dmFields值(指定结构的哪些成员是打印驱动支持的)
DC_MAXEXTENT 返回POINTS结构,该结构包含打印驱动的DEVMODE中dmPaperLength和dmPagerWidth可指定的最大纸张规格(POINTS的x元素包含最大dmPagerWidth值,y元素包含最大dmPagerLength值)。
DC_MINEXTENT 返回POINTS结构,该结构包含打印驱动的DEVMODE中dmPaperLength和dmPagerWidth可指定的最小纸张规格(POINTS的x元素包含最大dmPagerWidth值,y元素包含最大dmPagerLength值)。
DC_ORIENTATION返回设备纵向和横向打印之间的关系。
以纵向打印逆时针旋转产生横向打印时旋转的度数来表示。
返回值如下:0没有横向;90纵向旋转90度产生横向;270纵向旋转270度产生横向。
DC_PAPERSIZE 以十分之一毫米为单位,把所支持打印机尺寸拷贝到由pOutput指定POINT结构数组中。
DC_PAPERS 检索支持的纸张规格。
参看DEVMODE的dmPaperSize域。
DC_SIZE 返回打印驱动的DEVMODE结构中的dmSize元素值。
DC_MEDIAREADY 2k/xp:检索当前可用的纸型名。
pOutput接收一个串数组,每个串为64字符(纸型名),若名字太长,超过64字符时截断。
返回值指明数组中的名字个数,若p Output=NULL,仅返回纸型名的个数。
DC_NUP 2k/xp:检索纸…。
参看DEVMODE的dmNup域。
DC_PAPERNAMES 2k/xp:检索纸名(如Letter),pOutput接收一个串数组,每个串为64字符(纸名),若名字太长,超过64字符时截断。
返回值指明数组中的名字个数,若p Output=NULL,仅返回纸名个数。
DC_COLORDEVICE 2k/xp:若打印机支持彩印,返回1;否则,返回0。
不使用pOutput参数。
DC_PERSONALITY 2k/xp:检索打印机支持的描述语言名单。
DC_PRINTERMEM 2k/xp:返回打印存贮体数量(KB)。
不使用pOutput参数。
DC_PRINTRATEPPM 2k/xp:返回打印机的打印速率(页/每分钟)。
不使用pOutput参数。
DC_PRINTRATE 2k/xp:返回打印机的打印速率(DC_PRINTRATEUNIT返回值表明DC_PRINTRATE的单位)。
DC_PRINTRATEUNIT使用DC_PRINTRATE时返回的速率单位。
不用pOutput参数,PRINTRATEUNIT_CPS字符数/秒;PRINTRATEUNIT_IPM英寸/分钟;PRINTRATEUNIT_LPM行数/分钟;PRINTRATEUNIT_PPM页/分钟。
DC_STAPLE 2k/xp:若打印支持stapling,返回非0;否则,返回0。
不使用pOutput参数。
DC_MEDIATYPES xp:检索支持的媒体类型名单。
pOutput接收表明支持的媒体类型的WORD值。
参看dmMediaType。
DC_MEDIATYPENAMES xp:检索支持的媒体类型名。
pOutput接收一个串数组,每个串为64字符(媒体类型名),若名字太长,超过64字符时截断。
返回值指明数组中的名字个数,若pOutput=NULL,返回媒体类型名数。
DC_TRUETYPE 返回打印驱动支持TrueType的能力。
pOutput=NULL,返回值:DCTT_BITMAP按图形方式打印TrueType;DCTT_DOWNLOAD设备能卸载TrueType;DCTT_SUBDEV可用TrueTyp e替代设备字体。
DC_FILEDEPENDENCIES 返回安装驱动程序时需装载的文件。
若pOutput=NULL,返回文件数,否则pOutput以char[chFileName,64]形式指向一个文件名数组,每个文件名都是以NULL结尾的字符串。
DC_VERSION 返回打印驱动程序遵循的版本。
(5)DeviceIoControl ┄直接发送一个控制码到指定设备驱动程序,以使该设备进行相应操作。
原型:BOOL DeviceIoControl(HA NDLE hDevice,//设备句柄
DWORD dwIoControlCode,//操作控制码(见下表,也称IOCTL值)
LPVOID lpInBuffer,//输入缓冲区(存有传给驱动程序的数据)
DWORD nInBufferSize,//指定传给驱动程序的数据的长度(字节数)
out LPVOID lpOutBuffer,//输出缓冲区(接收驱动程序返回的数据)
DWORD nOutBufferSize,//指定输出缓冲区大小(字节数)
out LPDWORD lpBytesReturned,//→变量(存放pOutBuffer收到的字节数)
in/out LPOVERLAPPED lpOverlapped);//→OVERLAPPED(同步操作置为NULL)返回值:调用成功,返回非0;否则,返回0(若指定lpOutBuffer太小,函数出错且lpBytesReturned←0)。
若hDevice是CreateFile以FILE_FLAG_OVERLAPPED方式打开,DeviceIoControl可能有三种结果:
①返回非0(设备驱动程序的分发函数立即完成了请求的操作);
②返回0且GetLastError返回ERROR_IO_PENDING(分发函数返回STATUS_PENDING,操作正在进行中);
③返回0且GetLastError返回值不是ERROR_IO_PENDING,表明调用失败。
备注:若hDevice是CreateFile打开但未指定FILE_FLAG_OVERLAPPED,这时DeviceIoControl为同步调用。
在这种情况下,应设置LPOVERLAPPED=NULL。
设备管理操作设备管理操作
IOCTL_STORAGE_CHECK_VERIFY 检查可移动介质设备上的变化IOCTL_STORAGE_LOAD_MEDIA 装载介质设备
IOCTL_STORAGE_EJECT_MEDIA 从SCSI设备弹出介质IOCTL_STORAGE_MCN_CONTROL 使能或使介质改变通知失去能力
IOCTL_STORAGE_EJECTION_CONTROL 使能或使弹出介质的机制失去能力IOCTL_STORAGE_MEDIA_REMOVAL 使能或使介质弹出机制功能失效
IOCTL_ST ORA GE_GET_ME DIA_SERIAL_NUMBER 读取USB设备的号码IOCTL_STORAGE_GET_H OTPLUG_INFO 读取指定设备的hotplug配置
IOCTL_STORAGE_GET_MEDIA_TYPES 读取设备支持的介质种类信息(lpOutBuffer接收一个GET_MEDIA_TYPES结构)IOCTL_STORAGE_SET_HOTPLUG_INFO 设置指定设备的hotplug配置
IOCTL_STORAGE_GET_MEDIA_TYPES_EX 读取设备支持的介质种类信息(lpOutBuffer接收一个GET_MEDIA_TYPES结构)
设备改变操作设备改变操作
IOCTL_CHANGER_EXCHANGE_MEDIUM 从源元素最初移动介质片断向一目标和介质片断在第一个目的地到第二个目标IOCTL_CHANGER_GET_PARAMETERS 读取指定设备的参量
IOCTL_CHANGER_GET_ELEMENT_STATUS 读取所有元素的状况或一个特殊类型的元素的一个指定的数字IOCTL_CHANGER_GET_PRODUCT_DATA 读取产品数据为指定设备
IOCTL_CHA NGER_INITIALIZE_ELE MENT_ST A TUS 初始化所有元素或一个特殊类型的指定的元素的状况IOCTL_CHANGER_GET_STATUS 读取指定设备的当前状态
IOCTL_CHA NGER_REINITIALIZE_TRA NSPORT完全重新校正运输元素IOCTL_CHANGER_MOVE_MEDIUM 移动介质片断向目的地
IOCTL_CHANGER_SET_ACCESS 设置设备的进口或出口口岸(IEport),门或者键盘的状态IOCTL_CHANGER_QUERY_VOLUME_TAGS 读取容量标记信息为指定的元素
IOCTL_CHANGER_SET_POSITION 设置更换者的机器人传输机制到指定的单元地址
磁盘管理操作磁盘管理操作
IOCTL_DISK_CREATE_DISK 通过使用指定信息初始化指定的盘和磁盘分区IOCTL_DISK_PERFORMANCE 提供盘表现信息
IOCTL_DISK_DELETE_DRIVE_LAYOUT 从主引导记录去除起动署名IOCTL_DISK_PERFORMANCE_OFF 使盘表现信息失去能力
IOCTL_DISK_FORMAT_TRACKS 格式化软盘轨道IOCTL_DISK_REASSIGN_BLOCKS 地图盘块饶恕阻拦水池
IOCTL_DISK_FORMAT_TRACKS_EX 格式化软盘轨道与一条延长的轨道装置规格参量IOCTL_DISK_SET_CACHE_INFORMATION 设置磁盘高速缓存配置数据
IOCTL_DISK_GET_CACHE_IN FORMATION 读取磁盘高速缓存配置数据IOCTL_DISK_SET_DRIVE_LAYOUT_EX 分成一张盘
IOCTL_DISK_GET_DRIVE_GEOMETRY_EX 读取物理盘信息(lpOutBuffer接收一个DISK_GEOMETR Y结构)IOCTL_DISK_SET_PARTITION_INFO_EX 设置磁盘分区类型
IOCTL_DISK_GET_DRIVE_LAYOUT_EX 读取关于分开的数量在盘和每分开特点的信息IOCTL_DISK_UPDATE_PROPERTIES 无效指定的盘的被贮藏的分开桌并且再列举盘IOCTL_DISK_GET_LENGTH_INFO 读取指定的盘、卷或者分开的长度IOCTL_DISK_VERIFY 执行盘程度的逻辑格式
IOCTL_DISK_GET_PARTITION_INFO_EX 读取分开信息为在和EFI(延伸性固件接口)分开FSCTL_GET_RETRIEVAL_POINTERS 获得关于对文件的群用途的信息
IOCTL_DISK_GROW_PARTITION扩大指定的分开FSCTL_GET_VOLUME_BITMAP 得到群分派位图
FSCTL_MOVE_FILE 从一套群移动文件的全部或部份到另一个在容量之内IOCTL_DISK_IS_WRITABLE 确定指定的盘是否是可写卷管理操作文件压缩与解压操作
FSCTL_EXTEND_VOLUME 增加登上的卷的大小FSCTL_GET_COMPRESSION 获得文件或目录的压缩属性
FSCTL_GET_NTFS_VOLUME_DATA 读取关于指定的NTFS文件系统卷的信息FSCTL_SET_C OMPRESSION设置文件或目录的压缩属性
FSCTL_IS_VOLUME_MOUNTED 确定指定的卷是否登上,或者,如果被指定的文件或目录在登上的卷目录管理操作
FSCTL_DISMOUNT_VOLUME 卸载卷FSCTL_GET_COMPRESSION 读取文件或目录的压缩状态
FSCTL_LOCK_VOLUME 锁定卷FSCTL_SET_C OMPRESSION设置文件或目录的压缩状态
FSCTL_UNLOCK_VOLUME 解锁卷FSCTL_GET_REPARSE_POINT 读取文件或目录的ReparsePoint数据
FSCTL_READ_FROM_PLEX 从指定的plex读FSCTL_SET_REPARSE_POINT 设置文件或目录的ReparsePoint数据
IOCTL_V OLUME_GET_VOLUME_DISK_EXTENTS 在一个或更多盘读取指定的卷的实际位置FSCTL_DELETE_REPARSE_POINT 删除文件或目录的ReparsePoint数据
IOCTL_VOLUME_IS_CLUSTERED 确定卷是否成群。