USB2.0接口数据采集卡
代码调试成功,能生成对话框,正确采集数据。
只需要在VC++6.0中运行即可。
MFC,同步传输
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 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个文件信息
#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个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)