Windows Via C C++

  • k5_429737
    了解作者
  • 7.5MB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-24 07:59
    上传日期
<<windows核心编程>>第五版
Windows Via C C++.rar
  • Windows Via C C++
  • images
  • fig47_02_0.jpg
    19.6KB
  • fig735_02_0.jpg
    17.4KB
  • fig141_01_0.jpg
    15.1KB
  • fig699_03.jpg
    10.2KB
  • fig137_02.jpg
    14KB
  • fig637_01.jpg
    24.6KB
  • fig294_01.jpg
    17.8KB
  • fig744_01.jpg
    21.7KB
  • fig738_01_0.jpg
    41KB
  • fig757_02_0.jpg
    18.7KB
  • fig139_02.jpg
    10.9KB
  • fig760_02.jpg
    29.3KB
  • fig657_01.jpg
    33.4KB
  • fig764_01.jpg
    11.9KB
  • fig533_02.jpg
    20.3KB
  • fig138_02.jpg
    18.9KB
  • fig294_01_0.jpg
    41.1KB
  • fig634_01.jpg
    18.1KB
  • fig761_01.jpg
    20.4KB
  • bg_videobox.gif
    317B
  • fig374_01.jpg
    9.9KB
  • fig756_01_0.jpg
    18.5KB
  • fig141_01.jpg
    8.4KB
  • fig145_01.jpg
    22.9KB
  • fig455_01_0.jpg
    29.7KB
  • fig479_01_0.jpg
    51.6KB
  • fig634_01_0.jpg
    68.7KB
  • fig498_01.jpg
    8.3KB
  • fig01_01.jpg
    4.6KB
  • fig756_01.jpg
    9.2KB
  • fig757_01_0.jpg
    47.4KB
  • fig199_01.jpg
    16.1KB
  • fig97_01.jpg
    23.9KB
  • fig106_01_0.jpg
    42KB
  • fig533_01.jpg
    22.2KB
  • fig137_03_0.jpg
    25.1KB
  • fig651_01.jpg
    8.7KB
  • fig738_02.jpg
    15.9KB
  • fig269_02_0.jpg
    38.7KB
  • fig455_01.jpg
    14.8KB
  • fig603_02.jpg
    11KB
  • fig278_01.jpg
    7.8KB
  • fig137_01.jpg
    17KB
  • fig46_01_0.jpg
    37.3KB
  • fig47_03.jpg
    9.3KB
  • fig548_01.jpg
    19.3KB
  • fig566_01a_0.jpg
    99.2KB
  • fig68_01.jpg
    15.9KB
  • fig580_01.jpg
    46.9KB
  • fig599_01_0.jpg
    96.8KB
  • fig736_01_0.jpg
    21.6KB
  • fig700_01.jpg
    17.9KB
  • fig221_01.jpg
    17.3KB
  • fig740_01.jpg
    15.6KB
  • fig591_01.jpg
    26.6KB
  • partner_bluedisc.gif
    218B
  • fig60_01_0.jpg
    72.9KB
  • fig616_01_0.jpg
    97.8KB
  • progress_left.gif
    51B
  • fig590_01_0.jpg
    16.8KB
  • fig145_01_0.jpg
    58.2KB
  • fig772_01.jpg
    13.2KB
  • arrow_readnext.gif
    556B
  • fig97_01_0.jpg
    65.3KB
  • fig46_01.jpg
    18.6KB
  • fig138_01.jpg
    18.2KB
  • fig106_01.jpg
    20.4KB
  • fig700_03_0.jpg
    21.1KB
  • fig772_01_0.jpg
    32.6KB
  • fig68_01_0.jpg
    32.6KB
  • fig616_01.jpg
    30.8KB
  • fig60_01.jpg
    29.9KB
  • fig580_01_0.jpg
    144.8KB
  • fig68_02.jpg
    34.1KB
  • fig349_01_0.jpg
    137.3KB
  • fig492_02.jpg
    23.2KB
  • fig137_02_0.jpg
    26.7KB
  • fig758_01_0.jpg
    18.5KB
  • fig224_01_0.jpg
    19.9KB
  • fig232_01_0.jpg
    15.1KB
  • fig166_01.jpg
    20KB
  • fig767_01_0.jpg
    73.5KB
  • fig774_01.jpg
    14KB
  • fig173_02_0.jpg
    40.9KB
  • fig146_01_0.jpg
    41.3KB
  • fig442_01.jpg
    28.3KB
  • fig454_01_0.jpg
    27.1KB
  • fig764_01_0.jpg
    24.1KB
  • fig479_01.jpg
    27.9KB
  • fig478_01.jpg
    28.4KB
  • fig368_01.jpg
    25.6KB
  • fig701_01.jpg
    9.5KB
  • fig491_01.jpg
    19.9KB
  • fig57_01.jpg
    23.5KB
  • fig768_01_0.jpg
    60.3KB
  • fig146_01.jpg
    18.6KB
  • fig454_02.jpg
    14.9KB
  • fig469_01_0.jpg
    14.7KB
内容介绍
<HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <TITLE>Windows Via C/C++ - Books24x7</TITLE> <SCRIPT LANGUAGE="JavaScript1.2" SRC="dui.js"></SCRIPT><SCRIPT LANGUAGE="JavaScript1.2" SRC="chaptertoc.js"></SCRIPT><LINK REL="stylesheet" HREF="zapplication.css" type="text/css"/> <LINK REL="stylesheet" HREF="zshowkeywords.css" type="text/css"/> <LINK REL="stylesheet" TYPE="text/css" HREF="ie.content.books24x7.css"/> </HEAD> <BODY LEFTMARGIN="20" TOPMARGIN="5" RIGHTMARGIN="0" BGCOLOR="#FFFFFF"> <a HREF="#content" TABINDEX=1 rel='nofollow' onclick='return false;'></A> <a NAME="content" rel='nofollow' onclick='return false;'></A> <DIV STYLE="position:absolute;top:260;left:45;display:none;" ID="thebubble"></DIV><SCRIPT LANGUAGE="JavaScript"> <!-- // Activate cloak function PopImage(id, src, width, height) { if(id) { var img1 = document.getElementById(id); if(img1) { img1.style.display = 'none'; var img2 = document.getElementById(id+'$'); { if(img2) { img2.style.display = 'inline'; } else { node = img1.parentNode.parentNode node.innerHTML += '<IMG ID="'+id+'$" SRC="'+src+'" WIDTH="'+width+'" HEIGHT="'+height+'" ALT="Click to collapse" TITLE="Click to collapse" onClick="UnPopImage(\''+id+'\')" >' } } } } } function UnPopImage(id) { if(id) { var img1 = document.getElementById(id); var img2 = document.getElementById(id+'$'); if(img2) img2.style.display = 'none'; if(img1) img1.style.display = 'inline'; } } // Deactivate cloak --> </SCRIPT> <DIV CLASS="b24-bookmeta" xmlns:dc="http://purl.org/dc/elements/1.0/"> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="2" CLASS="b24-folderbook1"> <TR> <TD VALIGN="TOP" ALIGN="Right"><a BORDER="0" HREF="toc.asp@bookid=22940" rel='nofollow' onclick='return false;'></A></TD> <TD WIDTH="2" HEIGHT=""></TD> <TD VALIGN="Top" ALIGN="Left"> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="4" WIDTH="100%" HEIGHT=""> <TR> <TD VALIGN="TOP" ALIGN="Left" NOWRAP="1" COLSPAN="2"><a BORDER="0" rel='nofollow' onclick='return false;'><SPAN CLASS="b24-bookchaptertitle">Chapter 10 - Synchronous and Asynchronous Device I/O</SPAN></A></TD> </TR> <TR> <TD VALIGN="Top" ALIGN="Left" COLSPAN="2">Windows Via C/C++</TD> </TR> <TR> <TD VALIGN="TOP" ALIGN="Left" COLSPAN="2"><SPAN CLASS="b24-bookauthor">by Jeffrey Richter and Christophe Nasarre</SPAN> </TD> </TR> <TR><TD VALIGN="TOP" ALIGN="Left" COLSPAN="2"><a HREF="../../books.asp@imprintid=65" rel='nofollow' onclick='return false;'><SPAN CLASS="b24-bookimprint">Microsoft Press</SPAN></A><SPAN CLASS="b24-bookcwdate"> © 2008</SPAN></TD> </TR> <TR><TD VALIGN="TOP" ALIGN="Left" COLSPAN="2" ID="ID22940"></TD></TR> </TABLE> </TD> </TR> <TR><TD VALIGN="TOP" ALIGN="Center" COLSPAN="3" HEIGHT="10"></TD></TR> </TABLE> </DIV> <SCRIPT LANGUAGE="JavaScript"> <!-- function Next(item) { var cm = new Array(48,6,83,19,63,40,1,2,89,42,53,76,87,66,37) var a1 = new Array(6,7,1) var a2 = new Array(12,8,2) var a3 = new Array(4,11,9) var a4 = new Array(0,5,14) var a5 = new Array(10,13,3) var b1="00"+cm[a1[item]]; b1= b1.substr(b1.length-2,2) var b2="00"+cm[a2[item]]; b2= b2.substr(b2.length-2,2) var b3="00"+cm[a3[item]]; b3= b3.substr(b3.length-2,2) var b4="00"+cm[a4[item]]; b4= b4.substr(b4.length-2,2) var b5="00"+cm[a5[item]]; b5= b5.substr(b5.length-2,2) var h ='viewer.asp@bookid=22940\46chunkid='+b1+b2+b3+b4+b5; this.location=h} // --> </SCRIPT> <TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0" WIDTH="100%"> <TR> <TD ALIGN="Center"> <TABLE CELLSPACING="5" CELLPADDING="0" BORDER="0" WIDTH="85%"></TABLE> </TD> </TR> <TR><TD BGCOLOR="#000000"></TD></TR> </TABLE> <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="100%"> <TR> <TD COLSPAN="3" HEIGHT="5"></TD> </TR> <TR> <TD CLASS="b24-chunknavigate" WIDTH="25%" ALIGN="left"><a BORDER="0" HREF="187634853.htm" rel='nofollow' onclick='return false;'></A></TD> <TD CLASS="b24-chunknavigate" WIDTH="75%" ALIGN="center"> <TABLE CELLPADDING="0" CELLSPACING="0" BORDER="0"> <TR HEIGHT="11"> <TD WIDTH="6"></TD> <TD BACKGROUND="images/progress_bar.gif" WIDTH="300"></TD> <TD WIDTH="6"></TD> </TR> </TABLE> </TD> <TD CLASS="b24-chunknavigate" WIDTH="25%" ALIGN="right"><a BORDER="0" HREF="289764066.htm" rel='nofollow' onclick='return false;'></A></TD> </TR> <TR> <TD COLSPAN="3" HEIGHT="5"></TD> </TR> </TABLE> <div xmlns:esi="i.am.akamai"><!--Bypass:First Viewer Page:pdf download link: Time:Thu, 17 Jan 2008 11:31:43 UTC--><div><!--XML Creation Time:Thu, 17 Jan 2008 11:31:43 UTC--> <div class="chapter"> <a name="ch101C4AB577-C32E-4A16-BF0F-07F3124E103E" rel='nofollow' onclick='return false;'></a><span class="beginpage" pagenum=""></span> <div class="section"> <h2 class="first-section-title"> <a name="616" rel='nofollow' onclick='return false;'></a><a name="ch10lev1sec61C4AB577-C32E-4A16-BF0F-07F3124E103E" rel='nofollow' onclick='return false;'></a>Receiving Completed I/O Request Notifications</h2> <p class="first-para">At this point, you know how to queue an asynchronous device I/O request, but I haven't discussed how the device driver notifies you after the I/O request has completed.</p> <p class="para">Windows offers four different methods (briefly described in <a class="internaljump" href="#ch10table091C4AB577-C32E-4A16-BF0F-07F3124E103E" rel='nofollow' onclick='return false;'>Table 10-9</a>) for receiving I/O completion notifications, and this chapter covers all of them. The methods are shown in order of complexity, from the easiest to understand and implement (signaling a device kernel object) to the hardest to understand and implement (I/O completion ports).</p> <a name="617" rel='nofollow' onclick='return false;'></a><a name="ch10table091C4AB577-C32E-4A16-BF0F-07F3124E103E" rel='nofollow' onclick='return false;'></a> <table linktabletoexcel="yes" id="ch10table09" class="table" border="1"> <caption class="table-title"> <span class="table-title"><span class="table-titlelabel">Table 10-9: </span>Methods for Receiving I/O Completion Notifications</span> <br> <a href="outputobject.asp@bookid=22940&chunkid=778009276&objectid=ch10table09&objecttype=spreadsheet" class="object-link" target="_blank" rel='nofollow' onclick='return false;'> Open table as spreadsheet</a> </caption> <thead> <tr valign="top"> <th class="th" scope="col" align="left"> <p class="table-para"> <b class="bold">Technique</b> </p> </th><th class="th" scope="col" align="left"> <p class="table-para"> <b class="bold">Summary</b> </p> </th> </tr> </thead> <tbody> <tr valign="top"> <td class="td" align="left"> <p class="table-para">Signaling a device kernel object</p> </td><td class="td" align="left"> <p class="table-para">Not useful for performing multiple simultaneous I/O requests against a single device. Allows one thread to issue an I/O request and another thread to process it.</p> </td> </tr> <tr valign="top"> <td class="td" align="left"> <p class="table-para">Signaling an event kernel object</p> </td><td class="td" align="left"> <p class="table-para">Allows multiple simultaneous I/O requests against a single device. Allows one thread to issue an I/O reques
评论
    相关推荐