PcieWDM驱动


基于WDM的PCIe设备驱动代码例子,需要开发PCIe设备驱动的可以参考。
资源截图
代码片段和文件信息
/*************************************************************************
  Demo.
  Copyright (c) 2012 Demo.
   PCIe driver
      Version 1.0.0
**************************************************************************/

#include “pci.h“

NTSTATUS TSTDPciCreateClose(PDEVICE_object Deviceobject PIRP pIrp)
{
PIO_STACK_LOCATION pIoStack = IoGetCurrentIrpStackLocation(pIrp);
PTSTDPCI_DEVICE_EXT pDevExt = Deviceobject->DeviceExtension;

DebugPrint(“TSTDPciCreateClose() Start
“);
/* Flag setting when driver is being used */
TSTDPciRequestIncrement(pDevExt);

if(pIoStack->MajorFunction == IRP_MJ_CREATE)
{
InterlockedIncrement(&pDevExt->OpenCounter);
}
else if(pIoStack->MajorFunction == IRP_MJ_CLOSE)
{
InterlockedDecrement(&pDevExt->OpenCounter);
}

pIrp->IoStatus.Status = STATUS_SUCCESS;
if ( (pIoStack->MajorFunction == IRP_MJ_CREATE) && (pDevExt->State < STATE_ALL_BELOW_FAIL) ) 
{
pIrp->IoStatus.Status = STATUS_UNSUCCESSFUL;
}
pIrp->IoStatus.Information = 0;
IoCompleteRequest(pIrp IO_NO_INCREMENT);

if(pIoStack->MajorFunction==IRP_MJ_CLOSE && pDevExt->OpenCounter==0)
{
#if 0
// Force to free common buffer
if(pDevExt->CmnBuffSysVirAddr != NULL)
CommonBufferFree(pDevExt NULL);
for(i=0; i {
if(pDevExt->InterruptEvent[i])
{
ZwClose(pDevExt->EventHandle[i]);
pDevExt->EventHandle[i] = NULL;
pDevExt->InterruptEvent[i] = NULL;
}
}
#endif
}

/* Flag release when driver is being used */
TSTDPciRequestDecrement(pDevExt);

DebugPrint(“TSTDPciCreateClose() End
“);

return(STATUS_SUCCESS);
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-12-27 14:21  Pcie_driver
     目录           0  2013-12-27 14:21  Pcie_drivercmn
     文件        3909  2013-08-14 15:34  Pcie_drivercmndll_if.h
     文件         456  2013-08-14 15:32  Pcie_drivercmnguids.h
     文件        5517  2013-08-14 15:34  Pcie_drivercmnsys_if.h
     目录           0  2013-12-27 14:21  Pcie_driverDriver
     文件        5970  2012-12-07 08:29  Pcie_driverDriveruildchk_win7_amd64.log
     文件        1671  2013-08-14 15:33  Pcie_driverDrivercreate_close.c
     文件         925  2013-08-14 15:31  Pcie_driverDriverDebugPrint.h
     文件        1511  2013-08-14 15:32  Pcie_driverDriverentry_unload.c
     文件         268  2011-08-05 16:27  Pcie_driverDrivermakefile
     文件        8952  2013-04-18 10:25  Pcie_driverDriverNmake2MSBuild_sources.log
     目录           0  2013-12-27 14:21  Pcie_driverDriverobj
     目录           0  2013-12-27 14:21  Pcie_driverDriverobjchk_win7_amd64
     目录           0  2013-12-27 14:21  Pcie_driverDriverobjchk_win7_amd64amd64
     文件       80302  2012-12-07 08:29  Pcie_driverDriverobjchk_win7_amd64amd64create_close.obj
     文件       80326  2012-12-07 08:29  Pcie_driverDriverobjchk_win7_amd64amd64entry_unload.obj
     文件        8560  2012-12-07 08:31  Pcie_driverDriverobjchk_win7_amd64amd64entry_unload.obj.oacr.root.amd64chk.pft.xml
     文件       19096  2012-12-07 08:29  Pcie_driverDriverobjchk_win7_amd64amd64pcie_driver.map
     文件      248832  2012-12-07 08:29  Pcie_driverDriverobjchk_win7_amd64amd64pcie_driver.pdb
     文件       21376  2012-12-07 08:29  Pcie_driverDriverobjchk_win7_amd64amd64pcie_driver.sys
     文件       81965  2012-12-07 08:29  Pcie_driverDriverobjchk_win7_amd64amd64pci_ctl.obj
     文件         574  2012-12-07 08:31  Pcie_driverDriverobjchk_win7_amd64amd64pci_ctl.obj.oacr.root.amd64chk.pft.xml
     文件       86204  2012-12-07 08:29  Pcie_driverDriverobjchk_win7_amd64amd64pci_dma.obj
     文件        7493  2012-12-07 08:32  Pcie_driverDriverobjchk_win7_amd64amd64pci_dma.obj.oacr.root.amd64chk.pft.xml
     文件       81640  2012-12-07 08:29  Pcie_driverDriverobjchk_win7_amd64amd64pci_isr.obj
     文件        1050  2012-12-07 08:31  Pcie_driverDriverobjchk_win7_amd64amd64pci_isr.obj.oacr.root.amd64chk.pft.xml
     文件       91516  2012-12-07 08:29  Pcie_driverDriverobjchk_win7_amd64amd64pci_msc.obj
     文件         956  2012-12-07 08:32  Pcie_driverDriverobjchk_win7_amd64amd64pci_msc.obj.oacr.root.amd64chk.pft.xml
     文件       99524  2012-12-07 08:29  Pcie_driverDriverobjchk_win7_amd64amd64pci_pnp.obj
     文件       13635  2012-12-07 08:32  Pcie_driverDriverobjchk_win7_amd64amd64pci_pnp.obj.oacr.root.amd64chk.pft.xml
............此处省略86个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)