⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pciide.htm

📁 This sample provides a generic example of a PCI IDE minidriver. The sample isolates vendor-specific
💻 HTM
字号:

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-
1252">
<META NAME="Generator" CONTENT="Microsoft Word 97">
<TITLE>PCIIDE
</TITLE>
</HEAD>
<BODY LINK="#0000ff">

<FONT FACE="Verdana" SIZE=5><H2>PCIIDE
</H2>
</FONT><FONT FACE="Verdana" SIZE=2>
<P><span style="color:#FF0000;font-size:10pt;font-family:Arial">[This is preliminary 
documentation and subject to change.]</span></P>

<H3>SUMMARY</H3></FONT><FONT FACE="Verdana" SIZE=2><P>




This sample provides a generic example of a PCI IDE minidriver.  The sample isolates vendor-specific code from the higher-level PCI IDE bus driver, much as SCSI minidrivers isolate code from the SCSI port driver.

See the Release Notes section for more information.  <p>
This sample works on both x86 and Alpha platforms, and is 64-bit compliant.  It builds with Microsoft&#174; Visual C&#174; 6.0. It does not implement Plug and Play or Power Management.
<p>
<H3>BUILDING THE SAMPLE</H3></FONT><FONT FACE="Verdana" 
SIZE=2><P>
While in the \\Src\Storage\Miniide\Pciide directory, type <B>build</B>.  A successful build will produce Pciide.sys.<p>
<B>Note</B>: The sample needs a callback routine that will allow the driver to select a transfer mode for data transfer.  Once implemented, the callee will be able to choose to have I/O requests passed as 
busmaster (DMA transfer) or PIO (Programmed I/O).<p>

<H3>RELEASE NOTES</H3></FONT><FONT FACE="Verdana" SIZE=2><P>


Note that the driver model for IDE devices has changed in Microsoft&#174; Windows&#174; 2000.
In Microsoft&#174; Windows NT&#174; 4.0, Atapi.sys, a SCSI miniport driver, links to Scsiport.sys. 
In Windows NT 4.0, then, it is Scsiport and Atapi together that make up the SCSI port driver. 
<P>
In Windows 2000, there is still a driver called Atapi.sys, but it is a complete SCSI port driver.
It does not link to any other driver.
<P>
The new driver model isolates the
non-standard PCI IDE controller hardware interface into this PCI IDE minidriver.

<H3>RESOURCES</H3></FONT><FONT FACE="Verdana" SIZE=2><P>

See the Kernel Mode Drivers information in the Windows 2000 DDK documentation, specifically the sections
on storage drivers in the Design Guide and in Reference.  You will also find descriptions of the PciIdeX API's
in this documentation.  Note that the minidriver cannot access the registry, nor
can it call other kernel mode APIs.


 <p>
The PCI IDE mini driver returns its properties by using the following structure:<p>

IDE_CONTROLLER_PROPERTIES {<br>
<br>

    ULONG Size;   <br>
     
    ULONG ExtensionSize; <br>
                              
    ULONG SupportedTransferMode[MAX_IDE_CHANNEL][MAX_IDE_DEVICE];    <br>
                      
    PCIIDE_CHANNEL_ENABLED      PciIdeChannelEnabled;   <br>
                                                               
    PCIIDE_SYNC_ACCESS_REQUIRED PciIdeSyncAccessRequired;  <br>
 
    PCIIDE_TRANSFER_MODE_SELECT_FUNC PciIdeTransferModeSelect;   <br>
           
    BOOLEAN IgnoreActiveBitForAtaDevice;<br>
    BOOLEAN AlwaysClearBusMasterInterrupt;<br>
    PCIIDE_USEDMA_FUNC PciIdeUseDma;<br>
    ULONG AlignmentRequirement;<br>

<p>
} <p>



<b>Members</b><p>
<b>Size</b>
<blockquote>sizeof (IDE_CONTROLLER_PROPERTIES).</blockquote>
<b>ExtensionSize</b>
<blockquote>Indicates the amount of memory PCI IDE mini driver
     needs for its private data.</blockquote>
<b>SupportedTransferMode</b>
<blockquote> Indicates all the data transfer modes the PCI IDE
     controller supports.</blockquote>
<b>PciIdeChannelEnabled</b>
 <blockquote>Callback to query whether an IDE channel is enabled.  Note that these callbacks are
prototyped in Ide.h.</blockquote>
<b>PciIdeSyncAccessRequired</b>
<blockquote>Callback to query whether both IDE channels require
     synchronized (one channel at a time) access.</blockquote>
<b>PciIdeTransferModeSelect</b>
<blockquote>Callback to select proper transfer modes for the
     given devices.</blockquote>
<b>IgnoreActiveBitForAtaDevice</b>
<blockquote>Toggle to ignore busmaster 
     status active bit at the end of an ATA data transfer.  Normally, it should be FALSE.</blockquote>
 <b>AlwaysClearBusMasterInterrupt</b>
<blockquote>Toggle to always clear the busmaster interrupt on every interrupt generated by the device.  Normally, it should be FALSE.</blockquote>
<b>PciIdeUseDma</b>
<blockquote>Callback to determine whether DMA should be used or not
     called for every I/O.</blockquote>
<b>AlignmentRequirement</b>

<blockquote>Indicates if the miniport requires a different alignment.</blockquote>

<p>
<H3>CODE TOUR</H3>
<H4>File Manifest</H4>
</FONT><U><PRE>File&#9;&#9;Description
</U>
Init.c&#9;	Main code base
Pciide.h&#9;Private header file
Msg.mc&#9;	MC file
Pciide.rc	Resource file
Makefile&#9;Makefile
Sources&#9;	Sources
<p>
</FONT><P ALIGN="CENTER"><A HREF="#top"><FONT FACE="Verdana" SIZE=2>Top of page</FONT></A><FONT FACE="Verdana" SIZE=2> </P></FONT>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=624>
<TR><TD VALIGN="MIDDLE" BGCOLOR="#00ffff" HEIGHT=2>
<P></TD>
</TR>
</TABLE>

<FONT FACE="MS Sans Serif" SIZE=1><P>&copy; 1999 Microsoft Corporation</FONT><FONT FACE="Verdana" SIZE=2> </P></FONT></BODY>
</HTML>


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -