?? usbif.h
字號:
//usbif.h
#ifndef _USBIF_H_
#define _USBIF_H_
#include "devioctl.h"
#define USC unsigned char
#define FALSE 0
#define TRUE 1
//定義都是針對主控制器的
#define hReadPipe1 0 //endpoint 1, IN
#define hWritePipe1 1 //endpoint 2, OUT
#define hReadPipe2 2 //endpoint 3, IN
#define hWritePipe2 3 //endpoint 4, OUT
#define hReadPipe3 4 //endpoint 5, IN
#define hWritePipe3 5 //endpoint 6, OUT
#define kMaxNumInstances 999
typedef struct _BULK_TRANSFER_CONTROL
{
ULONG pipeNum;
} BULK_TRANSFER_CONTROL, *PBULK_TRANSFER_CONTROL;
#define Ezusb_IOCTL_INDEX 0x0800
//
// Perform an IN transfer over the specified bulk or interrupt pipe.
//
// lpInBuffer: BULK_TRANSFER_CONTROL stucture specifying the pipe number to read from
// nInBufferSize: sizeof(BULK_TRANSFER_CONTROL)
// lpOutBuffer: Buffer to hold data read from the device.
// nOutputBufferSize: size of lpOutBuffer. This parameter determines
// the size of the USB transfer.
// lpBytesReturned: actual number of bytes read
//
#define IOCTL_EVK_BULK_READ CTL_CODE(FILE_DEVICE_UNKNOWN, \
Ezusb_IOCTL_INDEX+19,\
METHOD_OUT_DIRECT, \
FILE_ANY_ACCESS)
//
// Perform an OUT transfer over the specified bulk or interrupt pipe.
//
// lpInBuffer: BULK_TRANSFER_CONTROL stucture specifying the pipe number to write to
// nInBufferSize: sizeof(BULK_TRANSFER_CONTROL)
// lpOutBuffer: Buffer of data to write to the device
// nOutputBufferSize: size of lpOutBuffer. This parameter determines
// the size of the USB transfer.
// lpBytesReturned: actual number of bytes written
//
#define IOCTL_EVK_BULK_WRITE CTL_CODE(FILE_DEVICE_UNKNOWN, \
Ezusb_IOCTL_INDEX+20,\
METHOD_IN_DIRECT, \
FILE_ANY_ACCESS)
//
// Returns driver version information
//
// lpInBuffer: NULL
// nInBufferSize: 0
// lpOutBuffer: PEZUSB_DRIVER_VERSION
// nOutputBufferSize: sizeof(EZUSB_DRIVER_VERSION)
//
#define IOCTL_EZUSB_GET_DRIVER_VERSION CTL_CODE(FILE_DEVICE_UNKNOWN, \
Ezusb_IOCTL_INDEX+29,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
///
//底下3個(gè)函數(shù)是最最重要的,其他函數(shù)都建立在這個(gè)基礎(chǔ)上的。
//******************************************************************
//function: hOpenDevice
//parameter: HANDLE *hDevcieHandle ----保存打開的設(shè)備句柄
//purpose : 對設(shè)備任何的操作之前都要調(diào)用這個(gè)函數(shù),來開啟設(shè)備
//return : 成功, 返回TRUE; 失敗,返回FALSE
//*******************************************************************
int hOpenDevice( HANDLE *hDeviceHandle );
//************************************************************************
//function: hCloseDevice
//parameter:HANDLE *hDeviceHandle ------hOpenDevice 打開的設(shè)備句柄
//purpose : 讀寫等操作完以后,要調(diào)用此函數(shù)來關(guān)閉
// 由hOpenDevice 函數(shù)打開的設(shè)備
//return: 關(guān)閉成功,返回 TRUE, 失敗,返回FALSE
//************************************************************************
int hCloseDevice( HANDLE *hDeviceHandle );
//*************************************************************
//function:hUSBIO
//purpose: 讀取 或發(fā)送數(shù)據(jù).這里采用的是這樣一種策略,讀寫超過64字節(jié),
// 那么分成64大小的塊。
//return: 成功傳輸,返回TRUE; 失敗, 返FALSE.
//**************************************************************
int hUSBIO(HANDLE *hDeviceHandle,
USC* hDataBuffer,
int hDataLength,
int hPipeNumber,
int hReadWrite); //TRUE means Read
#endif _USBIF_H_ //endof
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -