USB2.0接口数据采集卡


代码调试成功,能生成对话框,正确采集数据。 只需要在VC++6.0中运行即可。 MFC,同步传输
资源截图
代码片段和文件信息
#include “usbdriver.h“

ULONG UsbGetCurrentframeNumber(IN PDEVICE_object fdo);
ULONG UsbGetDeviceDescriptor(IN PDEVICE_object fdo
 PVOID pvOutputBuffer);
ULONG UsbGetStringDescriptor(IN PDEVICE_object fdo
                             UCHAR             Index
                             USHORT            LanguageId
                             PVOID             pvOutputBuffer
                             ULONG             ulLength);
ULONG UsbGetConfigDescriptor(IN PDEVICE_object fdo
                             PVOID   pvOutputBuffer
                             ULONG   ulLength);
NTSTATUS UsbStartIsoTransfer(IN PDEVICE_object fdoIN PIRP Irp);
NTSTATUS InitTransferobject(IN OUT PISO_STREAM_object streamobjectIN ULONG index);
NTSTATUS IsoTransferComplete(IN PDEVICE_object bunkfdoIN PIRP IrpIN PVOID Context);
//
NTSTATUS TestCreate(IN PDEVICE_object fdo IN PIRP Irp)
{
NTSTATUS ntStatus=STATUS_SUCCESS;
    PDEVICE_EXTENSION pdx = (PDEVICE_EXTENSION )fdo->DeviceExtension;

    pdx->OpenHandles++;

    Irp->IoStatus.Status = STATUS_SUCCESS;
    Irp->IoStatus.Information = 0;
    IoCompleteRequest (Irp IO_NO_INCREMENT);
    return ntStatus;
}
//
NTSTATUS TestClose(IN PDEVICE_object fdo IN PIRP Irp)
{
   NTSTATUS ntStatus=STATUS_SUCCESS;
   PDEVICE_EXTENSION pdx = (PDEVICE_EXTENSION )fdo->DeviceExtension;

   pdx->OpenHandles--;

   Irp->IoStatus.Status = STATUS_SUCCESS;
   Irp->IoStatus.Information = 0;
   IoCompleteRequest (Irp IO_NO_INCREMENT);
   return ntStatus;
}
//
NTSTATUS TestIOCTL(IN PDEVICE_object fdoIN PIRP Irp)
{
NTSTATUS ntStatus;
PIO_STACK_LOCATION IrpStack;
    PDEVICE_EXTENSION pdx;
    ULONG IoControlCode;
    PVOID IoBuffer;
    ULONG InputBufferLength;
    ULONG OutputBufferLength;
    ULONG length;
    PUCHAR pch;

pdx = (PDEVICE_EXTENSION )fdo->DeviceExtension;
    if (!LockDevice(fdo))
return CompleteRequest(Irp STATUS_DELETE_PENDING 0);

   IrpStack = IoGetCurrentIrpStackLocation (Irp);
   Irp->IoStatus.Status = STATUS_SUCCESS;
   Irp->IoStatus.Information = 0;

   IoBuffer           = Irp->AssociatedIrp.SystemBuffer;
   InputBufferLength  = IrpStack->Parameters.DeviceIoControl.InputBufferLength;
   OutputBufferLength = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;
   IoControlCode = IrpStack->Parameters.DeviceIoControl.IoControlCode;

   switch (IoControlCode) {
       case IOCTL_EZUSB_GET_CURRENT_frame_NUMBER:
   {
   ULONG frameNumber = 0;

               if (OutputBufferLength < sizeof(ULONG)) {
   Irp->IoStatus.Status = STATUS_INVALID_PARAMETER;
                   break;
   }
               frameNumber = UsbGetCurrentframeNumber (fdo);
               if (frameNumber) {
   *((PULONG)IoBuffer) = frameNumber;
                   Irp->IoStatus.Information = sizeof(ULONG);
                   Irp->IoStatus.Status = STATUS_SUCCESS;
   }
               else
   Irp->IoStatus.Status 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件          0  2003-10-20 19:31  isotransferDRIVERuild.err

     文件       4014  2003-06-02 22:21  isotransferDRIVERuild.log

     文件          0  2003-10-20 19:32  isotransferDRIVERuild.wrn

     文件        634  2003-05-20 16:53  isotransferDRIVERDrvBuild.bat

     文件        670  1997-04-11 11:23  isotransferDRIVERMAKEFILE

     文件      77784  2003-06-02 22:17  isotransferDRIVEROBJI386Checkedusbad.sys

     文件      11092  2003-06-02 22:21  isotransferDRIVEROBJI386Freeusbad.sys

     文件        410  2001-12-11 13:45  isotransferDRIVERRESOURCE.H

     文件       2574  2003-06-02 22:17  isotransferDRIVER
esource.rc

     文件        314  2003-06-02 22:16  isotransferDRIVERSources

     文件      20470  2003-10-20 19:36  isotransferDRIVERTestDispatch.c

     文件        744  2003-10-20 19:37  isotransferDRIVERTestInit.c

     文件      14978  2003-10-20 19:41  isotransferDRIVERTestPnp.c

     文件       1741  2003-10-20 19:42  isotransferDRIVERTestPower.c

     文件       5003  2003-10-20 19:43  isotransferDRIVERusbdriver.h

     文件       3597  2003-05-26 07:38  isotransferhostReadMe.txt

     文件        804  2012-07-31 16:55  isotransferhostReleaseStdAfx.obj

     文件    1538828  2012-07-31 16:55  isotransferhostReleaseStdAfx.sbr

     文件    3499008  2012-08-02 17:22  isotransferhostReleaseusbhost.bsc

     文件      36864  2012-08-02 17:22  isotransferhostReleaseusbhost.exe

     文件       9862  2012-08-02 17:22  isotransferhostReleaseusbhost.obj

     文件    7198092  2012-07-31 16:55  isotransferhostReleaseusbhost.pch

     文件       3764  2012-07-31 16:47  isotransferhostReleaseusbhost.res

     文件          0  2012-08-02 17:22  isotransferhostReleaseusbhost.sbr

     文件      55333  2012-08-02 17:22  isotransferhostReleaseusbhostDlg.obj

     文件          0  2012-08-02 17:22  isotransferhostReleaseusbhostDlg.sbr

     文件      50176  2012-08-02 17:22  isotransferhostReleasevc60.idb

     文件       1078  2003-05-27 16:30  isotransferhost
esusbhost.ico

     文件        399  2003-05-26 07:38  isotransferhost
esusbhost.rc2

     文件        766  2003-05-27 16:25  isotransferhost
esYsu.ico

............此处省略63个文件信息

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

发表评论

评论列表(条)