Windows主机端与自定义USB_HID设备通信详解

Windows主机端与自定义USB_HID设备通信详解
Windows主机端与自定义USB_HID设备通信详解

Windows主机端与自定义USB HID设备通信详解

说明:

-以下结论都是基于 Windows XP 系统所得出的,不保证在其他系统的适用性。

-在此讨论的是 HID 自定义设备,对于标准设备,譬如 USB 鼠标和键盘,由于操作系统对其独占,许多操作未必能正确执行。

1.所使用的典型Windows API

CreateFile

ReadFile

WriteFile

以下函数是 DDK 的内容:

HidD_SetFeature

HidD_GetFeature

HidD_SetOutputReport

HidD_GetInputReport

其中, CreateFile 用于打开设备; ReadFile 、 HidD_GetFeature 、 HidD_GetInputRep ort 用于设备到主机方向的数据通信; WriteFile 、HidD_SetFeature 、 HidD_SetOutput Report 用于主机到设备方向的数据通信。鉴于实际应用,后文主要讨论 CreateFile , Write File , ReadFile , HidD_SetFeature 四个函数,明白了这四个函数,其它的可以类推之。

2.几个常见错误

当使用以上 API 时,如果操作失败,调用 GetLastError() 会得到以下常见错误:

6 :句柄无效

23 :数据错误(循环冗余码检查)

87 :参数错误

1784 :用户提供的 buffer 无效

后文将会详细说明这些错误情况。

3.主机端设备枚举程序流程

4.函数使用说明

CreateFile(devDetail->DevicePath, // 设备路径GENERIC_READ | GENERIC_WRITE, // 访问方式

FILE_SHARE_READ | FILE_SHARE_WRITE, // 共享模式

NULL,

OPEN_EXISTING, // 文件不存在时,返回失败

FILE_FLAG_OVERLAPPED, // 以重叠(异步)模式打开

NULL);

在这里, CreateFile 用于打开 HID 设备,其中设备路径通过函数 SetupDiGetInterfaceDe viceDetail 取得。 CreateFile 有以下几点需要注意:

- 访问方式:如果是系统独占设备,例如鼠标、键盘等等,应将此参数设置为 0 ,否则后续函数操作将失败(譬如 HidD_GetAttributes );也就是说,不能对独占设备进行除了查询以外的任何操作,所以能够使用的函数也是很有限的,下文的一些函数并不一定适合这些设备。在此顺便列出 MSDN 上关于此参数的说明:

If this parameter is zero, the application can query file and device attributes without accessing the device. This is useful if an application wants to determin e the size of a floppy disk drive and the formats it supports without requiring a floppy in the drive. It can also be used to test for the file's or directory's ex istence without opening it for read or write access。

-重叠(异步)模式:此参数并不会在此处表现出明显的意义,它主要是对后续的 WriteFil e , ReadFile 有影响。如果这里设置为重叠(异步)模式,那么在使用 WriteFile , ReadFi le 时也应该使用重叠(异步)模式,反之亦然。这首先要求 WriteFile , ReadFile 的最后一个参数不能为空( NULL )。否则,便会返回 87 (参数错误)错误号。当然, 87 号错误并不代表就是此参数不正确,更多的信息将在具体讲述这两个函数时指出。此参数为 0 时,代表同步模式,即 WriteFile , ReadFile 操作会在数据处理完成之后才返回,否则阻塞在函数内部。

ReadFile(hDev, // 设备句柄,即 CreateFile 的返回值

recvBuffer, // 用于接收数据的 buffer

IN_REPORT_LEN, // 要读取数据的长度

&recvBytes, // 实际收到的数据的字节数

&ol); // 异步模式

在这里, ReadFile 用于读取 HID 设备通过中断 IN 传输发来的输入报告。有以下几点要注意:

1 、 ReadFile 的调用不会引起设备的任何反应,即 HID 设备与主机之间的中断 IN 传输不与 R eadFile 打交道。实际上主机会在最大间隔时间(由设备的端点描述符来指定)内轮询设备,发出中断 IN 传输的请求。“读取”即意味着从某个 buffer 里面取回数据,实际上这个 buffer 就是 HID 设备驱动中的 buffer 。这个 buffer 的大小可以通过 HidD_SetNumInputBuffer

s 来改变。在 XP 上缺省值是 32 (个报告)。

2 、读取的数据对象是输入报告,也即通过中断输入管道传入的数据。所以,如果设备不支持中断 IN 传输,那么是无法使用此函数来得到预期结果的。实际上这种情况不可能在 HID 中出现,因为协议指明了至少要有一个中断 IN 端点。

3 、 IN_REPORT_LEN 代表要读取的数据的长度(实际的数据正文 + 一个 byte 的报告 ID ),这里是一个常数,主要是因为设备固件的信息我是完全知道的,当然知道要读取多少数据(也就是报告的长度);不过也可以通过另外的函数(HidD_GetPreparsedData)来事先取得报告的长度,这里不做详细讨论。因为很难想象在不了解固件信息的情况下来做自定义设备的 HI

D 通信,在实际应用中一般来说就是固件与 PC 程序匹配着来开发。此参数如果设置过大,不会有实质性的错误,在 recvBytes 参数中会输出实际读到的长度;如果设置过小,即小于报告的长度,会返回 1784 号错误(用户提供的 buffer 无效)。

4 、关于异步模式。前面已经提过,此参数的设置必须与 CreateFile 时的设置相对应,否则会返回 87 号错误(参数错误)。如果不需要异步模式,此参数需置为 NULL 。在这种情况下, R eadFile 会一直等待直到数据读取成功,所以会阻塞住程序的当前过程。

WriteFile(hDev, // 设备句柄,即 CreateFile 的返回值

reportBuf, // 存有待发送数据的 buffer

OUT_REPORT_LEN, // 待发送数据的长度

&sendBytes, // 实际收到的数据的字节数

&ol); // 异步模式

在这里, WriteFile 用于传输一个输出报告给 HID 设备。有以下几点要注意:

1、与 ReadFile 不同, WriteFile 函数被调用后,虽然也是经过驱动程序,但是最终会反映到设备中。也就是说,调用 WriteFile 后,设备会接收到输出报告的请求。如果设备使用了中断 OUT 传输,则 WriteFile 会通过中断 OUT 管道来进行传输;否则会使用 SetReport 请求通过控制管道来传输。

2、OUT_REPORT_LEN 代表要写入的数据长度(实际的数据正文 + 一个 byte 的报告 ID )。如果大于实际报告的长度,则使用实际报告长度;如果小于实际报告长度,会返回 1784 号错误(用户提供的 buffer 无效)。

3、reportBuf [0] 必须存有待发送报告的 ID ,并且此报告 ID 指示的必须是输出报告,否则会返回 87 号错误(参数错误)。这种情况可能容易被程序员忽略,结果不知错误号所反映的是什么,网上也经常有类似疑问的帖子。顺便指出,输入报告、输入报告、特征报告这些报告类型,是反映在 HID 设备的报告描述符中。后文将做举例讨论。

4、关于异步模式。前面已经提过,此参数的设置必须与 CreateFile 时的设置相对应,否则会返回 87 号错误(参数错误)。如果不需要异步模式,此参数需置为 NULL 。在这种情况下, W riteFile 会一直等待直到数据读取成功,所以会阻塞住程序的当前过程。

HidD_SetFeature(hDev, // 设备句柄,即 CreateFile 的返回值reportBuf, // 存有待发送数据的 buffer

FEATURE_REPORT_LEN); //buffer 的长度

HidD_SetOutputReport(hDev, // 设备句柄,即 CreateFile 的返回值reportBuf, // 存有待发送数据的 buffer

OUT_REPORT_LEN); //buffer 的长度

HidD_SetFeature 发送一个特征报告给设备, HidD_ SetOutputReport 发送一个输出报告给设备。注意以下几点:

1、跟 WriteFile 类似,必须在 reportBuf [0] 中指明要发送的报告的 ID ,并且和各自适合的类型相对应。也就是说, HidD_SetFeature 只能发送特征报告,因此报告 ID 必须是特征报告的 ID ; HidD_SetOutputReport 只能发送输出报告,因此报告 ID 只能是输出报告的 I

D 。

2、这两个函数最常返回的错误代码是 23 (数据错误)。包括但不仅限于以下情况:

- 报告 ID 与固件描述的不符。

- 传入的 buffer 长度少于固件描述的报告的长度。

据有关资料反映(非官方文档),只要是驱动程序对请求无反应,都会产生此错误。

5.常见错误汇总

- HID ReadFile

- Error Code 6 (handle is invalid)

传入的句柄无效

- Error Code 87 ( 参数错误 )

很可能是 createfile 时声明了异步方式,但是读取时按同步读取。

- Error Code 1784 ( 用户提供的 buffer 无效 ):

传参时传入的“读取 buffer 长度”与实际的报告长度不符。

- HID WriteFile

- Error Code 6 (handle is invalid)

传入的句柄无效

- Error Code 87 (参数错误)

- CreateFile 时声明的同步 / 异步方式与实际调用 WriteFile 时传入的不同。

- 报告 ID 与固件中定义的不一致( buffer 的首字节是报告 ID )

- Error Code 1784 ( 用户提供的 buffer 无效 )

传参时传入的“写入 buffer 长度”与实际的报告长度不符。

- HidD_SetFeature

- Error Code 1 (incorrect function)

不支持此函数,很可能是设备的报告描述符中未定义这样的报告类型(输入、输出、特征)- Error Code 6 (handle is invalid)

传入的句柄无效

- Error Code 23 (数据错误(循环冗余码检查))

- 报告 ID 与固件中定义的不相符( buffer 的首字节是报告 ID )

- 传入的 buffer 长度少于固件定义的报告长度(报告正文 +1byte, 1byte 为报告 ID )- 据相关资料反映(非官方文档),只要是驱动程序不接受此请求(对请求无反应),都会产生此错误

6.报告描述符及数据通信程序示例

报告描述符(注意表中的每个数据都占 1 个字节):

const uint8_t CustomHID_ReportDescriptor[CUSTOMHID_SIZ_REPORT_DESC] =

{

0x05, 0x8c, /* USAGE_PAGE (ST Page) */

0x09, 0x01, /* USAGE (Demo Kit) */

0xa1, 0x01, /* COLLECTION (Application) */

// The Input report

0x09,0x03, // USAGE ID - Vendor defined

0x15,0x00, // LOGICAL_MINIMUM (0)

0x26,0x00, 0xFF, // LOGICAL_MAXIMUM (255)

0x75,0x08, // REPORT_SIZE (8bit)

0x95,0x40, // REPORT_COUNT (64Byte)

0x81,0x02, // INPUT (Data,Var,Abs)

0x09,0x04, // USAGE ID - Vendor defined

0x15,0x00, // LOGICAL_MINIMUM (0)

0x26,0x00,0xFF, // LOGICAL_MAXIMUM (255)

0x75,0x08, // REPORT_SIZE (8bit)

0x95,0x40, // REPORT_COUNT (64Byte)

0x91,0x02, // OUTPUT (Data,Var,Abs)

0xc0 /* END_COLLECTION */

}; /* CustomHID_ReportDescriptor */

下面用一个简单的示例来描述 PC 端与 USB HID 设备进行通信的一般方法。

void HIDSampleFunc()

{

HANDLE hDev;

BYTE recvDataBuf[1024];

BYTE reportBuf[1024];

DWORD bytes;

hDev = OpenMyHIDDevice(0); // 打开设备,不使用重叠(异步)方式 ;

if (hDev == INVALID_HANDLE_VALUE){

printf("INVALID_HANDLE_VALUE\n");

return;

}

reportBuf[0] = 0; // 输出报告的报告 ID 是 0

for(int i=0;i

reportBuf[i+1]=i+1;

}

if (!WriteFile(hDev, reportBuf, REPORT_COUNT+1, &bytes, NULL)){// 写入数据到设备printf("write data error! %d\n",GetLastError());

return;

}

if(!ReadFile(hDev, recvDataBuf, REPORT_COUNT+1, &bytes, NULL)){ // 读取设备发给主机的数据printf("read data error! %d\n",GetLastError());

return;

}

for(int i=0;i

printf("0x%02X ",recvDataBuf[i+1]);

}

printf("\n\r");

}

HANDLE OpenMyHIDDevice(int overlapped)

{

HANDLE hidHandle;

GUID hidGuid;

HidD_GetHidGuid(&hidGuid);

HDEVINFO hDevInfo = SetupDiGetClassDevs(&hidGuid,NULL,NULL,(DIGCF_PRESENT |

DIGCF_DEVICEINTERFACE));

if (hDevInfo == INVALID_HANDLE_VALUE)

{

return INVALID_HANDLE_VALUE;

}

SP_DEVICE_INTERFACE_DATA devInfoData;

devInfoData.cbSize = sizeof (SP_DEVICE_INTERFACE_DATA);

int deviceNo = 0;

SetLastError(NO_ERROR);

while (GetLastError() != ERROR_NO_MORE_ITEMS)

{

if (SetupDiEnumInterfaceDevice (hDevInfo,0,&hidGuid,deviceNo,&devInfoData))

{

ULONG requiredLength = 0;

SetupDiGetInterfaceDeviceDetail(hDevInfo,

&devInfoData,

NULL,

0,

&requiredLength,

NULL);

PSP_INTERFACE_DEVICE_DETAIL_DATA devDetail =

(SP_INTERFACE_DEVICE_DETAIL_DATA*)malloc(requiredLength);

devDetail->cbSize = sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA);

if(!SetupDiGetInterfaceDeviceDetail(hDevInfo,

&devInfoData,

devDetail,

requiredLength,

NULL,

NULL))

{

free(devDetail);

SetupDiDestroyDeviceInfoList(hDevInfo);

return INVALID_HANDLE_VALUE;

}

if (overlapped)

{

hidHandle = CreateFile(devDetail->DevicePath,

GENERIC_READ | GENERIC_WRITE,

FILE_SHARE_READ | FILE_SHARE_WRITE,

NULL,

OPEN_EXISTING,

FILE_FLAG_OVERLAPPED,

NULL);

}

else

{

hidHandle = CreateFile(devDetail->DevicePath,

GENERIC_READ | GENERIC_WRITE,

FILE_SHARE_READ | FILE_SHARE_WRITE,

NULL,

OPEN_EXISTING,

0,

NULL);

}

free(devDetail);

if (hidHandle==INVALID_HANDLE_VALUE)

{

SetupDiDestroyDeviceInfoList(hDevInfo);

free(devDetail);

return INVALID_HANDLE_VALUE;

}

_HIDD_ATTRIBUTES hidAttributes;

if(!HidD_GetAttributes(hidHandle, &hidAttributes)) {

CloseHandle(hidHandle);

SetupDiDestroyDeviceInfoList(hDevInfo);

return INVALID_HANDLE_VALUE;

}

if (USB_VID == hidAttributes.VendorID

&& USB_PID == hidAttributes.ProductID) {

printf("找到了我想要的设备,哈哈哈....\n");

break;

}

else

{

CloseHandle(hidHandle);

++deviceNo;

}

}

}

SetupDiDestroyDeviceInfoList(hDevInfo);

return hidHandle;

}

windows cmd 命令脚本大全

winver 检查Windows版本 wmimgmt.msc 打开Windows管理体系结构(wmi) wupdmgr Windows更新程序 wscript Windows脚本宿主设置 write 写字板 winmsd 系统信息 wiaacmgr 扫描仪和照相机向导 winchat xp自带局域网聊天 mem.exe 显示内存使用情况 msconfig.exe 系统配置实用程序 mplayer2 简易widnows media player mspaint 画图板 mstsc 远程桌面连接 mplayer2 媒体播放机 magnify 放大镜实用程序 mmc 打开控制台 mobsync 同步命令 dxdiag 检查directx信息 drwtsn32 系统医生 devmgmt.msc 设备管理器 dfrg.msc 磁盘碎片整理程序 diskmgmt.msc 磁盘管理实用程序 dcomcnfg 打开系统组件服务 ddeshare 打开dde共享设置 dvdplay dvd播放器 net stop messenger 停止信使服务 net start messenger 开始信使服务 notepad 打开记事本 nslookup 网络管理的工具向导 ntbackup 系统备份和还原 narrator 屏幕“讲述人” ntmsmgr.msc 移动存储管理器 ntmsoprq.msc 移动存储管理员操作请求

netstat -an (tc)命令检查接口 syncapp 创建一个公文包 sysedit 系统配置编辑器 sigverif 文件签名验证程序 sndrec32 录音机 shrpubw 创建共享文件夹 secpol.msc 本地安全策略 syskey 系统加密,一旦加密就不能解开,保护Windows xp系统的双重密码services.msc 本地服务设置 sndvol32 音量控制程序 sfc.exe 系统文件检查器 sfc /scannow windows文件保护tsshutdn 60秒倒计时关机命令 tourstart xp简介(安装完成后出现的漫游xp程序) taskmgr 任务管理器 eventvwr 事件查看器 eudcedit 造字程序 explorer 打开资源管理器 packager 对象包装程序 perfmon.msc 计算机性能监测程序 progman 程序管理器 regedit.exe 注册表 rsop.msc 组策略结果集 regedt32 注册表编辑器 rononce -p 15秒关机 regsvr32 /u *.dll 停止dll文件运行 regsvr32 /u zipfldr.dll 取消zip支持 cmd.exe cmd命令提示符 chkdsk.exe chkdsk磁盘检查 certmgr.msc 证书管理实用程序 calc 启动计算器

电脑系统服务项

一、什么是系统服务 在Windows 2000/XP/2003系统中,服务是指执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是低层(接近硬件)程序。通过网络提供服务时,服务可以在Active Directory(活动目录)中发布,从而促进了以服务为中心的管理和使用。 服务是一种应用程序类型,它在后台运行。服务应用程序通常可以在本地和通过网络为用户提供一些功能,例如客户端/服务器应用程序、Web服务器、数据库服务器以及其他基于服务器的应用程序。 二、配置和管理系统服务 通过上面的阅读,相信你已对Windows系统服务有所了解,与系统注册表类似,对系统服务的操作,我们可以通过“服务管理控制台”来实现。 以管理员或Administrators组成员身份登录,单击“开始→运行”菜单项,在出现的对话框中键入“Services.msc”并回车,即可打开“服务管理控制台”。你也可以单击“开始→控制面板→性能和维护→管理工具→服务”选项来启动该控制台。 在服务控制台中,双击任意一个服务,就可以打开该服务的属性对话框。在这里,我们可以对服务进行配置、管理操作,通过更改服务的启动类型来设置满足自己需要的启动、关闭或禁用服务。 在“常规”选项卡中,“服务名称”是指服务的“简称”,并且也是在注册表中显示的名称;“显示名称”是指在服务配置界面中每项服务显示的名称;“描述”是为该服务作的简单解释;“可执行文件的路径”即是该服

务对应的可执行文件的具体位置;“启动类型”是整个服务配置的核心,对于任意一个服务,通常都有3种启动类型,即自动、手动和已禁用。只要从下拉菜单中选择就可以更改服务的启动类型。“服务状态”是指服务的现在状态是启动还是停止,通常,我们可以利用下面的“启动”、“停止”、“暂停”、“恢复”按钮来改变服务的状态。 下面让我们来看看3种不同类型的启动状态: 自动:此服务随着系统启动时启动,它将延长启动所需要的时间,有些服务是必须设置为自动的,如Remote Procedure Call(RPC)。由于依存关系或其他影响,其他的一些服务也必须设置为自动,这样的服务最好不要去更改它,否则系统无法正常运行。 手动:如果一个服务被设置为手动,那么可以在需要时再运行它。这样可以节省大量的系统资源,加快系统启动。 已禁用:此类服务不能再运行。这个设置一般在提高系统安全性时使用。如果怀疑一个陌生的服务会给你的系统带来安全上的隐患,可以先尝试停止它,看看系统是否能正常运行,如果一切正常,那么就可以直接禁用它了。如果以后需要这个服务,在启动它之前,必须先将启动类型设置为自动或手动。 单击“依存关系”选项卡,在这里我们可以看到,在顶端列表中指出运行选定服务所需的其他服务,底端列表指出了需要运行选定服务才能正确运行的服务。它说明了一些服务并不能单独运行,必须依靠其他服务。在停止或禁用一个服务之前,一定要看看这个服务的依存关系,如果有其他需要启动的服务是依靠这个服务,就不能将其停止。在停止或

windows驱动开发和调试环境搭建

Windows驱动开发和环境搭建 【文章标题】: Windows驱动开发和调试的环境设置 【文章作者】: haikerenwu 【使用工具】: VC6.0,VMware6.0.3,Windbg 【电脑配置】: 惠普笔记本xp sp3 (一)VMWare安装篇 VMWare的安装一路Next即可,关于其序列号,百度一下就能找到,虚拟机安装完成之后,需要安装操作系统,我在虚拟机中安装的是windows xp sp2系统。 点击“文件”----“新建”----“虚拟机” 进入新建虚拟机的向导,配置虚拟系统参数

选择虚拟系统文件的兼容格式(新手推荐选择默认选项) 按照默认设置继续点击下一步,选择好您需要的操作系统,此处我选择的是Windows XP Prefessional。 设置虚拟机名称和虚拟操作系统安装路径,我单独空出来一个F 盘,将虚拟机和虚拟操作系统全部装在该盘。

配置网络模式(推荐选择NA T,一般主机不用做任何的设置虚拟机就可以利用主机上网)。 配置虚拟磁盘的容量。在这里可以直接单击完成,来完成基本操作设置,磁盘默认空间是8GB,用户可以根据自己的实际使用情况来调整大小,也可以自定义分区。

操作完成之后,在“VM”菜单下有个“setting。。。”菜单,点击此菜单,在CD-ROM中选择合适的选项,我使用的是Use ISO image 选项,将我的xp sp2操作系统的ISO映像路径设置好,安装操作系统。点击ok之后,启动虚拟机,即开始安装操作系统,安装过程跟普通装机过程相同。安装完成之后,启动操作系统,然后在VM菜单下点击“Install VMWare Tools”,把虚拟操作系统的驱动装好。 (二)VMWare设置篇

常用的网络工具命令解析

如果你玩过路由器的话,就知道路由器里面那些很好玩的命令缩写。 例如,"sh int" 的意思是"show interface"。 现在Windows 2000 也有了类似界面的工具,叫做netsh。 我们在Windows 2000 的cmd shell 下,输入netsh 就出来:netsh> 提示符, 输入int ip 就显示: interface ip> 然后输入dump ,我们就可以看到当前系统的网络配置: # ---------------------------------- # Interface IP Configuration # ---------------------------------- pushd interface ip # Interface IP Configuration for "Local Area Connection" set address name = "Local Area Connection" source = static addr = 192.168.1.168 mask = 255.255.255.0 add address name = "Local Area Connection" addr = 192.1.1.111 mask = 255.255.255.0 set address name = "Local Area Connection" gateway = 192.168.1.100 gwmetric = 1 set dns name = "Local Area Connection" source = static addr = 202.96.209.5 set wins name = "Local Area Connection" source = static addr = none

windows服务大全

windows服务大全 一、什么是系统服务 在Windows 2000/XP/2003系统中,服务是指执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是低层(接近硬件)程序。通过网络提供服务时,服务可以在Active Directory(活动目录)中发布,从而促进了以服务为中心的管理和使用。 服务是一种应用程序类型,它在后台运行。服务应用程序通常可以在本地和通过网络为用户提供一些功能,例如客户端/服务器应用程序、Web服务器、数据库服务器以及其他基于服务器的应用程序。 二、配置和管理系统服务 通过上面的阅读,相信你已对Windows系统服务有所了解,与系统注册表类似,对系统服务的操作,我们可以通过“服务管理控制台”来实现。 以管理员或Administrators组成员身份登录,单击“开始→运行”菜单项,在出现的对话框中键入“Services.msc”并回车,即可打开“服务管理控制台”。你也可以单击“开始→控制面板→性能和维护→管理工具→服务”选项来启动该控制台。 在服务控制台中,双击任意一个服务,就可以打开该服务的属性对话框。在这里,我们可以对服务进行配置、管理操作,通过更改服务的启动类型来设置满足自己需要的启动、关闭或禁用服务。 在“常规”选项卡中,“服务名称”是指服务的“简称”,并且也是在注册表中显示的名称;“显示名称”是指在服务配置界面中每项服务显示的名称;“描述”是为该服务作的简单解释;“可执行文件的路

径”即是该服务对应的可执行文件的具体位置;“启动类型”是整个服务配置的核心,对于任意一个服务,通常都有3种启动类型,即自动、手动和已禁用。只要从下拉菜单中选择就可以更改服务的启动类型。“服务状态”是指服务的现在状态是启动还是停止,通常,我们可以利用下面的“启动”、“停止”、“暂停”、“恢复”按钮来改变服务的状态。 下面让我们来看看3种不同类型的启动状态: 自动:此服务随着系统启动时启动,它将延长启动所需要的时间,有些服务是必须设置为自动的,如Remote Procedure Call(RPC)。由于依存关系或其他影响,其他的一些服务也必须设置为自动,这样的服务最好不要去更改它,否则系统无法正常运行。 手动:如果一个服务被设置为手动,那么可以在需要时再运行它。这样可以节省大量的系统资源,加快系统启动。 已禁用:此类服务不能再运行。这个设置一般在提高系统安全性时使用。如果怀疑一个陌生的服务会给你的系统带来安全上的隐患,可以先尝试停止它,看看系统是否能正常运行,如果一切正常,那么就可以直接禁用它了。如果以后需要这个服务,在启动它之前,必须先将启动类型设置为自动或手动。 单击“依存关系”选项卡,在这里我们可以看到,在顶端列表中指出运行选定服务所需的其他服务,底端列表指出了需要运行选定服务才能正确运行的服务。它说明了一些服务并不能单独运行,必须依靠其他服务。在停止或禁用一个服务之前,一定要看看这个服务的依存关系,

Windows驱动开发培训

Windows驱动开发培训 培训流程: 一、基础知识 在开始驱动开发之前,您应该知道操作系统原理以及驱动程序是如何在操作系统中进行工作的,了解这些基本原理将有助于您做出正确的设计决策并简化您的开发过程。 1、了解Windows操作系统构造\\ 可以链接进去 2、安装WDK,参考相关文档,熟悉WDK的内容\\ 可以链接进去 二、Windows驱动开发\\ 可以链接进去 一、基础知识 在开始驱动开发之前,您应该知道操作系统原理以及驱动程序是如何在操作系统中进行工作的,了解这些基本原理将有助于您做出正确的设计决策并简化您的开发过程。 1、了解Windows操作系统构造 (1)培训目标 深入了解Windows操作系统的系统结构以及工作原理 (2)培训内容 阅读书籍《深入解析Windows操作系统》的第3、4、6、7、9章,重点关注第九章“I/O系统” (3)培训任务 ①掌握Windows操作系统的系统结构 ②理解ISR、IRP、IRQL、DCP等概念的含义 ③了解注册表的用法,掌握注册表数据的查看和修改方法 ④了解进程和线程的内部机理以及线程的调度策略 ⑤了解I/O系统的内容,理解I/O请求以及I/O处理过程 注:以上相关内容,请在一周内完成。

2、安装WDK,参考相关文档,熟悉WDK的内容 (1)培训目标 了解WDK的安装过程,熟悉WDK的编译环境,掌握如何使用WDK的相关帮助文档;了解WDM驱动程序的基本结构 (2)培训内容 ①.阅读文档\\10.151.131.12\book\windows\MSWDM.chm,掌握WDM驱动程序的基本结构以及基本的编程技术。 ②.参考WDK的帮助文档:WDK documentation ,了解WDK的基本内容 (3)培训任务 ①理解分层驱动结构的含义,掌握设备和驱动程序的层次结构 ②理解“驱动对象”和“设备对象”的概念 ③理解2个基本例程:DriverEntry 和addDevice ④了解IRP的结构以及IRP处理的流程 ⑤初步了解I/O的控制操作 注:以上相关内容,请在一周内完成。 二、Windows驱动开发 学习如何基于WDK进行驱动程序的开发 1、培训目标 (1)学会根据WDK开发一个基本的Windows驱动程序和测试程序 (2)学会利用不同的IOCTL方式在内核模式和用户模式之间进行通讯 (3)学会如何在内核模式下和用户模式下访问注册表 (4)利用WinDbg跟踪程序,学会使用WinDbg进行调试 2、培训内容 (1)阅读\src\general\ioctl中的示例代码 (2)build并运行应用程序和驱动程序

【实验一】常用网络管理命令的使用

实验1 常用网络管理命令的使用 一.实验目的 1.掌握各种主要命令的作用。 2.掌握各种网络命令的主要测试方法。 3.理解各种网络命令主要参数的含义。 二.实验环境 1.安装有Windows 2003 Server操作系统的计算机二台。 2.至少有两台机器通过交叉双绞线相连或通过集线器相连。 三.实验理论基础 在网络调试的过程中,常常要检测服务器和客户机之间是否连接成功、希望检查本地计算机和某个远程计算机之间的路径、检查TCP/IP的统计情况以及系统使用DHCP分配IP地址时掌握当前所有的TCP/IP网络配置情况,以便及时了解整个网络的运行情况,以确保网络的连通性,保证整个网络的正常运行。在Windows 2003中提供了以下命令行程序。 (1) ping:用于测试计算机之间的连接,这也是网络配置中最常用的命令; (2) ipconfig:用于查看当前计算机的TCP/IP配置; (3) netstat:显示连接统计; (4) tracert:进行源主机与目的主机之间的路由连接分析; (5) arp:实现IP地址到物理地址的单向映射。 四.实验参考步骤 1.Ping命令 Ping用于确定网络的连通性。命令格式为:Ping 主机名/域名/IP地址 一般情况下,用户可以通过使用一系列Ping命令来查找问题出在什么地方,或检验网络运行的情况时。典型的检测次序及对应的可能故障如下: (1)ping 127.0.0.1:如果测试成功,表明网卡、TCP/IP协议的安装、IP地址、子网掩码的设置正常。如果测试不成功,就表示TCP/IP的安装或运行存在某些最基本的问题。 (2)ping 本机IP:如果测试不成功,则表示本地配置或安装存在问题,应当对网络设备和通讯介质进行测试、检查并排除。 (3)ping 局域网内其它IP:如果测试成功,表明本地网络中的网卡和载体运行正确。但如果收到0个回送应答,那么表示子网掩码不正确或网卡配置错误或电缆系统有问题。 (4)ping 网关IP:这个命令如果应答正确,表示局域网中的网关或路由器正在运行并能够做出应答。 (5)ping 远程IP:如果收到正确应答,表示成功的使用了缺省网关。对于拨号上网用户则表示能够成功的访问Internet。 (6) ping localhost:localhost是系统的网络保留名,它是127.0.0.1的别名,每台计算机都应该能够将该名字转换成该地址。如果没有做到这点,则表示主机文件(/Windows/host)存在问题。 (7)Ping https://www.360docs.net/doc/545803676.html,(一个著名网站域名):对此域名执行Ping命令,计算机必须先将域名转换成IP地址,通常是通过DNS服务器。如果这里出现故障,则表示本机DNS服务器的IP地址配置不正确,或DNS服务器有故障。 如果上面所列出的所有Ping命令都能正常运行,那么计算机进行本地和远程通信基本上就

Windows CMD命令大全

cmd是command的缩写.即命令行。 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命 运,但是因为它运行安全、稳定,有的用户还在使用,所以一般Windows 的各种版本都与其兼容,用户可以在Windows 系统下运行DOS,中文版Windows XP 中的命令提示符进一步提高了与DOS 下操作命令的兼容性,用户可以在命令提示符直接输入中文调用文件。 在9x系统下输入command就可以打开命令行.而在NT系统上可以输入cmd来打开,在 windows2003后被cmd替代,利用CMD命令查询系统的信息或者是判断网络的好坏。 运行操作 CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) CMD命令锦集 1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. Nslookup-------IP地址侦测器,是一个监测网络中DNS 服务器是否能正确实现域名解析的命令行工具。它在Windows NT/2000/XP 中均可使用, 但在Windows 98 中却没有集成这一个工具。 4. explorer-------打开资源管理器 5. logoff---------注销命令 6. shutdown-------60秒倒计时关机命令 7. lusrmgr.msc----本机用户和组 8. services.msc---本地服务设置 9. oobe/msoobe /a----检查XP是否激活 10. notepad--------打开记事本 11. cleanmgr-------垃圾整理 12. net start messenger----开始信使服务 13. compmgmt.msc---计算机管理 14. net stop messenger-----停止信使服务 15. conf-----------启动netmeeting 16. dvdplay--------DVD播放器 17. charmap--------启动字符映射表 18. diskmgmt.msc---磁盘管理实用程序 19. calc-----------启动计算器 20. dfrg.msc-------磁盘碎片整理程序 21. chkdsk.exe-----Chkdsk磁盘检查 22. devmgmt.msc--- 设备管理器 23. regsvr32 /u *.dll----停止dll文件运行 24. drwtsn32------ 系统医生 25. rononce -p----15秒关机 26. dxdiag---------检查DirectX信息 27. regedt32-------注册表编辑器 28. Msconfig.exe---系统配置实用程序 29. rsop.msc-------组策略结果集 30. mem.exe--------显示内存使用情况

计算机系统服务

1.系统服务函数为应用程序提供了访问计算机资源以及底层操作系统特性的手段,比如访问内存、文件系统、设备、进程和线程。应用程序使用系统服务函数来管理和监视它所需要的资源。例如,应用程序可使用内存管理函数来分配和释放内存,使用进程管理和同步函数来启动和调整多个应用程序或在一个应用程序中运行的多个线程的操作。 2. 系统服务函数提供了访问文件、目录以及输入输出(I/O)设备的手段。应用程序使用文件I/O函数可以访问保存在指定计算机以及网络计算机上的磁盘和其他存储设备上的文件和目录。这些函数支持各种文件系统,从FAT文件系统,CD-ROM文件系统(CDFS),到NTFS。 3.系统访问函数为应用程序提供了一些可以与其他应用程序共享代码或信息的方法。例如,可以将一些有用的过程放到DLL中,使它们对所有的应用程序都可用。应用程序只需使用DLL函数将动态链接库加载进来并获取各过程的地址,就可以使用这些过程了。通讯函数用于向通讯端口写入数据及从通讯端口读出数据,并控制这些端口的操作方式。有几种内部通讯(IPC)的方法,比如DDE、管道(Pipe)、邮槽(Mailslot)和文件映射。对于提供安全属性的操作系统来说,应用程序可使用安全函数来访问安全数据,并保护这些数据不会被有意或无意地访问或破坏。 使用系统服务函数可以访问有关系统和其他应用程序的信息。应用程序可用系统信息函数来确定计算机的特别属性,比如是否出现鼠标、显示屏幕上的元素具有多大尺寸。注册和初始化函数用于将应用程序的特殊信息保存到系统文件中,以便于该应用程序的新实例对象,甚至其他应用程序都可以获取和使用这些信息。 应用程序使用系统服务函数可以处理执行过程中的的一些特殊情况,比如错误处理、事件日志、异常处理。还有一些属性可用于调试和提高性能。例如,使用调试函数可对其他进程的执行过程进行单步控制,而性能监视函数则可对某个进程的执行路径进行跟踪。 系统服务函数还提供了一些特性,可用于创建其他类型的应用程序,比如控制台应用程序和服务。 系统服务函数包括以下几类: 访问控制函数(Access Control) Microsoft Windows NT所提供的安全功能对Win32应用程序是自动使用的。在系统中运行的每个应用程序都受由Windows NT的特殊配置所提供的安全功能所影响。Windows NT 是支持Win32安全功能的唯一平台。 Windows NT的安全功能对大多数Win32函数的影响都是最小的,不需要安全功能的Win32应用程序不必合并任何特殊代码。不过,你可使用Windows NT的安全属性向Win32应用程序提供一些服务。 访问控制函数提供了一系列控制访问Win32对象(比如文件)、管理函数(比如设置系统时间或审核运行动作的函数)的Windows NT安全模型。 原子函数(Atom) 原子表格是一个系统定义的表格,用于保存字符串和相应的标识符。应用程序将一个字符串放到原子表格中,并接受一个16位的整数(称为一个原于),用于访问该字符串。放到原子表格中的字符串被称为原子名字。 原子函数提供了一系列对原子进行添加、删除、初始化等的操作。 客户服务器访问控制函数(Client/Server Access Control) 客户/服务器访问控制函数包括三类: 用于模拟客户机。 用于检查和设置私有对象上的安全描述符。

Windows XP系统服务设置详解

Windows XP 系统服务优化设置详解 一.系统服务 1.Alerter Alerter(警报器)。将系统上发生的与管理有关的事件以警示信息传送至网络上指定的电脑或用户,例如当发生打印错误或硬盘即将写满等事件,即由该服务负责收集、送出。该服务进程名为Services.exe(即启动这个服务后在的后台运行的进程名称,可以通过任务管理器查看到)。 依存关系:Workstation 建议:一般家用计算机根本不需要传送或接收计算机系统管理来的警示(AdministrativeAlerts),除非你的计算机用在局域网络上,停止。 2.Application Management AppMgmt(应用程序管理服务)。提供软件安装服务,如分派、发行以及删除。该服务进程名为Svchost.exe。 依存关系:无 建议:启动。 3.Automatic Updates Wuauserv(自动更新服务)。从Windows Update启用Windows更新的下载和安装。该服务进程名为Svchost.exe。 依存关系:无 建议:启动。 4.ClipBook ClipSrv(剪贴簿)。启用“剪贴簿查看器”储存信息并实现与远程计算机共享。该服务进程名为Clipsrv.exe 依存关系:Network DDE 建议:该服务对于一般家用计算机根本涉及不到,可以根据具体情况,停止。 https://www.360docs.net/doc/545803676.html,+Event System EventSystem(COM+事件系统服务)。支持系统事件通知服务(SENS),此服务为订阅组件对象模型(COM)组件事件提供自动分布功能。该服务进程名为Svchost .exe。 依存关系:Remote Procedure Call(RPC)和System Event Notification 建议:有些程序可能用到COM+组件,像BootVis的Optimize system应用,根据具体情况,启动。 https://www.360docs.net/doc/545803676.html,+System Application COMSysApp(COM+系统应用服务)。管理基于COM+组件的配置和跟踪。该服务进程名为Dllhost.exe。 依存关系:Remote Procedure Call(RPC) 建议:如果COM+Event Sysctem是一辆车,那么COM+Systern Application就是司机,根据具体情况,启动。 7.Cryptographic Services CayptSve(认证服务)。提供三种管理服务,编录数据库服务,它确定Windows文件的签字;受保护的根服务,它从此计算机添加和删除受信根证书机构的证书;密钥(Key)服务,它帮助注册此计算机获取证书。如果此服务被终止,这些管理服务将无法正常运行。该服务进程名为Svehost.exe。

Windows驱动开发入门

接触windows驱动开发有一个月了,感觉Windows驱动编程并不像传说中的那么神秘。为了更好地为以后的学习打下基础,记录下来这些学习心得,也为像跟我一样致力于驱动开发却苦于没有门路的菜鸟朋友们抛个砖,引个玉。 我的开发环境:Windows xp 主机+ VMW ARE虚拟机(windows 2003 server系统)。编译环境:WinDDK6001.18002。代码编辑工具:SourceInsight。IDE:VS2005/VC6.0。调试工具:WinDBG,DbgView.exe, SRVINSTW.EXE 上面所有工具均来自互联网。 对于初学者,DbgView.exe和SRVINSTW.EXE是非常简单有用的两个工具,一定要装上。前者用于查看日志信息,后者用于加载驱动。 下面从最简单的helloworld说起吧。Follow me。 驱动程序的入口函数叫做DriverEntry(PDRIVER_OBJECT pDriverObj,PUNICODE_STRING pRegisgryString)。两个参数,一个是驱动对象,代表该驱动程序;另一个跟注册表相关,是驱动程序在注册表中的服务名,暂时不用管它。DriverEntry 类似于C语言中的main函数。它跟main的差别就是,main完全按照顺序调用的方法执行,所有东西都按照程序员预先设定的顺序依次发生;而DriverEntry则有它自己的规则,程序员只需要填写各个子例程,至于何时调用,谁先调,由操作系统决定。我想这主要是因为驱动偏底层,而底层与硬件打交道,硬件很多都是通过中断来与操作系统通信,中断的话就比较随机了。但到了上层应用程序,我们是看不到中断的影子的。说到中断,驱动程序中可以人为添加软中断,__asm int 3或者Int_3();前者是32位操作系统用的,后者是64位用的。64位驱动不允许内嵌汇编。下面是我的一个helloworld的源码:

WINDOWS中CMD命令大全(可直接打印)

开始→运行→输入的命令集锦 winver---------检查Windows版本 wmimgmt.msc----打开windows管理体系结构(WMI) wupdmgr--------windows更新程序 wscript--------windows脚本宿主设置 write----------写字板 winmsd---------系统信息 wiaacmgr-------扫描仪和照相机向导 winchat--------XP自带局域网聊天 mem.exe--------显示内存使用情况 Msconfig.exe---系统配置实用程序 mplayer2-------简易widnows media player mspaint--------画图板 mstsc----------远程桌面连接 mplayer2-------媒体播放机 magnify--------放大镜实用程序 mmc------------打开控制台 mobsync--------同步命令 dxdiag---------检查DirectX信息 drwtsn32------ 系统医生 devmgmt.msc--- 设备管理器 dfrg.msc-------磁盘碎片整理程序 diskmgmt.msc---磁盘管理实用程序 dcomcnfg-------打开系统组件服务 ddeshare-------打开DDE共享设置 dvdplay--------DVD播放器 net stop messenger-----停止信使服务 net start messenger----开始信使服务 notepad--------打开记事本 nslookup-------网络管理的工具向导 ntbackup-------系统备份和还原 narrator-------屏幕“讲述人” ntmsmgr.msc----移动存储管理器 ntmsoprq.msc---移动存储管理员操作请求 netstat -an----(TC)命令检查接口 syncapp--------创建一个公文包 sysedit--------系统配置编辑器 sigverif-------文件签名验证程序 sndrec32-------录音机 shrpubw--------创建共享文件夹 secpol.msc-----本地安全策略 syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码 services.msc---本地服务设置Sndvol32-------音量控制程序 sfc.exe--------系统文件检查器 sfc /scannow---windows文件保护 tsshutdn-------60秒倒计时关机命令 tourstart------xp简介(安装完成后出现的漫游xp程序)taskmgr--------任务管理器 eventvwr-------事件查看器 eudcedit-------造字程序 explorer-------打开资源管理器 packager-------对象包装程序 perfmon.msc----计算机性能监测程序 progman--------程序管理器 regedit.exe----注册表 rsop.msc-------组策略结果集 regedt32-------注册表编辑器 rononce -p ----15秒关机 regsvr32 /u *.dll----停止dll文件运行 regsvr32 /u zipfldr.dll------取消ZIP支持 cmd.exe--------CMD命令提示符 chkdsk.exe-----Chkdsk磁盘检查 certmgr.msc----证书管理实用程序 calc-----------启动计算器 charmap--------启动字符映射表 cliconfg-------SQL SERVER 客户端网络实用程序 Clipbrd--------剪贴板查看器 conf-----------启动netmeeting compmgmt.msc---计算机管理 cleanmgr-------垃圾整理 ciadv.msc------索引服务程序 osk------------打开屏幕键盘 odbcad32-------ODBC数据源管理器 oobe/msoobe /a----检查XP是否激活 lusrmgr.msc----本机用户和组 logoff---------注销命令 iexpress-------木马捆绑工具,系统自带 Nslookup-------IP地址侦测器 fsmgmt.msc-----共享文件夹管理器 utilman--------辅助工具管理器 sndrec32-------录音机 Nslookup-------IP地址侦测器 explorer-------打开资源管理器 logoff---------注销命令 tsshutdn-------60秒倒计时关机命令 lusrmgr.msc----本机用户和组

Windows操作系统正常系统服务services参数详解

Windows操作系统正常系统服务services参数详解操作系统启动项命令参数详解有很多朋友感觉自己的电脑运行速度比较慢,那就让我们来了解一下电脑的启动组的构成,首先在运行中输入(services.msc)回车,会看到本地服务的框线,tab一次就是列表: 01.显示名称:alerter◎进程名称:svchost.exe-kLocalService◎微软描述:通知所选用户和计算机有关系统管理级警报。如果服务停止,使用管理警报的程序将不会受到它们。如果此服务被禁用,任何直接依赖它的服务都将不能启动。◎补充描述:警报器。该服务进程名为Services.exe,一般家用计算机根本不需要传送或接收计算机系统管理来的警示(Administrativealerts),除非你的计算机用在局域网络上。◎默认:禁用建议:禁用 02.显示名称:ApplicationLayerGatewayService◎进程名称:alg.exe◎微软描述:为Internet连接共享和Windows防火墙提供第三方协议插件的支持。◎补充描述:XPSP2自带的防火墙,如果不用可以关掉。◎默认:手动(已启动)建议:禁用 03.显示名称:ApplicationManagement◎进程名称:svchost.exe-knetsvcs◎微软描述:提供软件安装服务,诸如分派,发行以及删除。◎补充描述:应用程序管理。从Windows2000开始引入的一种基于msi文件格式的全新有效软件管理方案:程序管理组件服务。该服务不仅可以管理软件的安装、删除,还可以使用此服务修改、修复现有应用程序,监视文件复原并通过复原排除基本故障等,软件安装变更的服务。◎默认:手动建议:手动 04.显示名称:AutomaticUpdates◎进程名称:svchost.exe-knets vcs◎微软描述:允许下载并安装Windows更新。如果此服务被禁用,计算机将不能使用WindowsUpdate网站的自动更新功能。◎补充描述:自动更新,手动就行,需要的时候打开,没必要随时开着。不过2005年4月12日以后微软将对没有安装SP2的WindowsXP操作系统强制安装系统补丁SP2。◎默认:自动建议:手动 06.显示名称:ClipBook◎进程名称:clipsrv.exe◎微软描述:启用“剪贴簿查看器”储存信息并与远程计算机共享。如果此服务终止,“剪贴簿查看器”将无法与远程计算机共享信息。如果此服务被禁用,任何依赖它的服务将无法启动。◎补充描述:剪贴簿。把剪贴簿内的信息和其它台计算机分享,一般家用计算机根本用不到。◎默认:禁用建议:禁用 07.显示名称:COM+EventSystem◎进程名称:svchost.exe-knetsvcs◎微软描述:支持系统事件通知服务(SENS),此服务为订阅组件对象模型(COM)组件事件提供自动分布功能。如果停止此服务,SENS将关闭,而且不能提供登录和注销通知。如果禁用此服务,显式依赖此服务的其他服务将无法启动。◎补充描述:COM+事件系统。有些程序可能用到COM+组件,如自己的系统优化工具BootVis。检查系统盘的目录“C:\ProgramFiles\ComPlusApplications”,没东西可以把这个服务关闭。◎默认:手动(已启动)建议:手动 08.显示名称:COM+SystemApplication◎进程名称:dllhost.exe/Processid:{02D4B3F1-FD88-11D1-960D-00805FC79235}◎微软描述:管理基于

Windows驱动程序开发环境配置

Windows驱动程序开发笔记 一、WDK与DDK环境 最新版的WDK 微软已经不提供下载了这里:https://https://www.360docs.net/doc/545803676.html,/ 可以下并且这里有好多好东东! 不要走进一个误区:下最新版的就好,虽然最新版是Windows Driver Kit (WDK) 7_0_0,支持windows7,vista 2003 xp等但是它的意思是指在windows7操作系统下安装能编写针对windows xp vista的驱动程序, 但是不能在xp 2003环境下安装Windows Driver Kit (WDK) 7_0_0这个高版本,否则你在build的时候会有好多好多的问题. 上文build指:首先安装好WDK/DDK,然后进入"开始"->"所有程序"->"Windows Driver Kits"->"WDK XXXX.XXXX.X" ->"Windows XP"->"x86 Checked Build Environment"在弹出来的命令行窗口中输入"Build",让它自动生成所需要的库 如果你是要给xp下的开发环境还是老老实实的找针对xp的老版DDK吧,并且xp无WDK 版只有DDK版build自己的demo 有个常见问题: 'jvc' 不是内部或外部命令,也不是可运行的程序。 解决办法:去掉build路径中的空格。 二、下载 WDK 开发包的步骤 1、访问Microsoft Connect Web site站点 2、使用微软 Passport 账户登录站点 3、登录进入之后,点击站点目录链接 4、在左侧的类别列表中选择开发人员工具,在右侧打开的类别:开发人员工具目录中找到Windows Driver Kit (WDK) and Windows Driver Framework (WDF)并添加到您的控制面板中 5、添加该项完毕后,选择您的控制面板,就可以看到新添加进来的项了。 6、点击Windows Driver Kit (WDK) and Windows Driver Framework (WDF),看到下面有下载链接,OK,下载开始。下载后的文件名为: 6.1.6001.18002.081017-1400_wdksp-WDK18002SP_EN_DVD.iso将近600M大小。

windors系统运行命令大全

windors系统运行命令大全 winver---------检查Windows版本 wmimgmt.msc----打开windows管理体系结构(WMI) wupdmgr--------windows更新程序 wscript--------windows脚本宿主设置 write----------写字板 winmsd---------系统信息 wiaacmgr-------扫描仪和照相机向导 winchat--------XP自带局域网聊天 mem.exe--------显示内存使用情况 Msconfig.exe---系统配置实用程序 mplayer2-------简易widnows media player mspaint--------画图板 mstsc----------远程桌面连接 mplayer2-------媒体播放机 magnify--------放大镜实用程序 mmc------------打开控制台 mobsync--------同步命令 dxdiag---------检查DirectX信息 drwtsn32------ 系统医生 devmgmt.msc--- 设备管理器 dfrg.msc-------磁盘碎片整理程序 diskmgmt.msc---磁盘管理实用程序 dcomcnfg-------打开系统组件服务 ddeshare-------打开DDE共享设置 dvdplay--------DVD播放器 net stop messenger-----停止信使服务 net start messenger----开始信使服务 notepad--------打开记事本 nslookup-------网络管理的工具向导 ntbackup-------系统备份和还原 narrator-------屏幕“讲述人” ntmsmgr.msc----移动存储管理器 ntmsoprq.msc---移动存储管理员操作请求 netstat -an----(TC)命令检查接口 syncapp--------创建一个公文包 sysedit--------系统配置编辑器 sigverif-------文件签名验证程序 sndrec32-------录音机 shrpubw--------创建共享文件夹 secpol.msc-----本地安全策略 syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码services.msc---本地服务设置 Sndvol32-------音量控制程序

电脑系统维护及保养服务合同范本

编号:_______________ 本资料为word版本,可以直接编辑和打印,感谢您的下载 电脑系统维护及保养服务合同范本 甲方:___________________ 乙方:___________________ 日期:___________________

第一条合同范围 本合同是关于_______科技有限公司(以下简称乙方)向__________(以下简称甲方)提供电脑系统维护及保养服务的合同。 乙方须确保甲方现有电脑系统高效、稳定的运行。 1.《系统设备清单》(详见附件一) 经甲方及乙方共同签字确认的,列有将由乙方提供服务的软、硬件设备的品牌,配置,序列号,保修期等内容的清单。在合同执行前,乙方将对甲方提供的《系统设备清单》中的设备进行全面检测。 2.合同设备或设备 2.1.《系统设备清单》中列及的设备或配件。 2.2.乙方仅对合同设备提供服务。 3.故障设备 已被乙方接受的发生故障的合同设备。 4.标准服务时间 星期一至星期五,每天____am-____pm(北京时间),中国大陆的公共节假日除外。 5.标准响应时间 从乙方确认并接受了甲方的现场服务请求至乙方人员到达服务地点所需的最长时间: 6.标准服务项目 服务内容: 1.系统升级及更新咨询; 2.定期检测及保养; 3.硬件更新升级的安装配置; 4.数据迁移及恢复;

5.病毒检测及清除; 6.操作系统故障检测及排除; 7.系统设备更换时操作系统重新安装与调试; 8.网络硬件设备的检测; 9.系统连接检查; 10.接通internet网的调试; 11.设备移机; 12.打印机等外围设备驱动程序安装维护。 第二条维护方式 1.定期上门维护 乙方对甲方的电脑系统至少每月进行一次维护包括系统优化、硬盘整理杀病毒及机箱内灰尘清除等工作。 2.随机故障处理 2.1.电话支持 乙方通过服务电话对甲方的故障设备做出基本故障判定、故障排除、操作指导的服务。电话支持并不能排除所有的故障。 2.2.现场服务 当乙方在断定无法只通过电话支持来排除故障设备的故障时,将根据合同条款中的有关规定指派工程师在标准服务时间里到达服务现场服务。 第三条合同不涉及的服务 1.系统设备清单所列之外的设备。 2.非乙方原因造成的数据丢失。 3.在甲方不允许乙方进出入的场所才能完成的服务。 4.乙方所承诺提供服务地点以外的地方。

相关文档
最新文档