📄 usbdriver.h
字号:
/*----------------------------------------------------------------------------
* Copyright (c) 2001 by National Semiconductor Corporation
* National Semiconductor Corporation
* 2900 Semiconductor Drive
* Santa Clara, California 95051
*
* All rights reserved
*
*<<<-------------------------------------------------------------------------
* File Contents:
* USBDriver.h
*
* Project: USB Demo Application
* Author : Yan Nosovitsky
* Date : Dec 2001
*----------------------------------------------------------------------->>>*/
#ifndef __USBDRIVER_H__
#define __USBDRIVER_H__
#include "c:/WinDriver/include/windrvr.h"
typedef struct DRIVER_STRUCT
{
HANDLE hWD;
WD_USB_DEVICE_INFO deviceInfo;
DWORD hDevice;
} DRIVER_STRUCT;
typedef struct DRIVER_STRUCT *DRIVER_HANDLE;
enum { DRIVER_DEFAULT_VENDOR_ID = 0x0400 };
enum { DRIVER_DEFAULT_PRODUCT_ID = 0xC35D };
enum { DRIVER_DEFAULT_CONFIG = 0 };
enum { DRIVER_DEFAULT_INTERFACE = 0 };
enum { DRIVER_DEFAULT_ALTERNATE = 1 };
typedef enum {
NO_USB_ERROR = 0,
NO_USB_DEVICE_FOUND,
FAIL_OPEN_WINDRIVER,
INCORRECT_WINDRIVER_VER,
FAIL_OPEN_USB_DEVICE,
DEVICE_WAS_DISCONNECTED
}USBErrorCode;
class USBDriver
{
public:
~USBDriver();
CString GetErrorDescriptor();
void ChangeConfig(int configNum);
void ChangeInterface(int interfaceNum);
bool CheckPipe(USB_PIPE_TYPE pipeType, int pipeNum, WD_USB_PIPE_INFO *pipeInfo);
int WorkWithPipe(int pipeAddress, BYTE *buffer, int size, BOOL isRead);
int WorkWithZeroPipe( BYTE setupPacket[8], BYTE *buffer, int size, BOOL isRead);
void StopTransferPipe(int pipeAddress);
void ResetPipe(int pipeAddress);
void IncreaseUSBUsers() { numOfUSBUsers++ ;}
void DecreaseUSBUsers() { numOfUSBUsers-- ;}
int CurUSBUsers() { return numOfUSBUsers; }
void CnangeBulkOutTestStatus(bool bulkStatus) { bulkOutTestRun = bulkStatus; }
bool IsBulkOutTestRun() { return bulkOutTestRun; }
void CnangeIntTestStatus(bool intStatus) { intTestRun = intStatus; }
bool IsIntTestRun() { return intTestRun; }
bool IsUSBDriverHaveError() { return (errorCode != NO_USB_ERROR); }
void CloseUSBDriver();
static USBDriver* GetUSBDriver();
private:
USBDriver();
static USBDriver* curUSBDriver;
bool OpenUSBDriver(DWORD uniqueId, DWORD configIndex, DWORD dwInterface, DWORD dwAlternate);
bool USB_Get_WD_handle(HANDLE *phWD);
void RegisterWinDriver();
int uniqueId;
WD_USB_DEVICE_GENERAL_INFO deviceGeneralInfo;
int currentConfig;
DRIVER_HANDLE driverHandle;
int numOfInterface;
int currentInterface;
int numOfUSBUsers;
bool bulkOutTestRun;
bool intTestRun;
USBErrorCode errorCode;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -