You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

559 lines
22 KiB
C++

// 2003.09.10
// 2003.12.08 V1.2
// 2004.05.08 V1.3
// 2004.12.10 V1.5
//****************************************
//** Copyright (C) W.ch 1999-2004 **
//** Web: http://www.winchiphead.com **
//****************************************
//** DLL for PCI interface chip CH365 **
//** C, VC5.0 **
//****************************************
//
// PCI<43><49><EFBFBD>߽ӿ<DFBD>оƬCH365<36><35>Ӧ<EFBFBD>ò<EFBFBD><C3B2>ӿڿ<D3BF> V1.5
// <20>Ͼ<EFBFBD><CFBE>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޹<EFBFBD>˾ <20><><EFBFBD><EFBFBD>: W.ch 2004.12
// CH365-DLL V1.5 , Support: IO/MEM/INT
// <20><><EFBFBD>л<EFBFBD><D0BB><EFBFBD>: Windows 98/ME, Windows 2000/XP
#ifndef _CH365_DLL_H
#define _CH365_DLL_H
#ifdef __cplusplus
extern "C" {
#endif
#define mOFFSET( s, m ) ( (ULONG) & ( ( ( s * ) 0 ) -> m ) ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><E1B9B9>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>ƫ<EFBFBD>Ƶ<EFBFBD>ַ<EFBFBD>ĺ<EFBFBD>
#ifndef max
#define max( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) ) // <20>ϴ<EFBFBD>ֵ
#endif
#ifndef min
#define min( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) ) // <20><>Сֵ
#endif
#ifdef ExAllocatePool
#undef ExAllocatePool // ɾ<><C9BE><EFBFBD><EFBFBD>TAG<41><47><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>
#endif
#ifndef NTSTATUS
typedef LONG NTSTATUS; // <20><><EFBFBD><EFBFBD>״̬
#endif
typedef struct _PCI_CONFIG { // <20><><EFBFBD><EFBFBD>PCI<43><49><EFBFBD>ÿռ<C3BF><D5BC><EFBFBD><EFBFBD>ݽṹ
USHORT mPcVendorId; // 00H <20><>Ӧ<EFBFBD>̱<EFBFBD>ʶ
USHORT mPcDeviceId; // 02H <20><EFBFBD><E8B1B8>ʶ
USHORT mPcCommandReg; // 04H <20><><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
USHORT mPcStatusReg; // 06H ״̬<D7B4>Ĵ<EFBFBD><C4B4><EFBFBD>
UCHAR mPcRevisionId; // 08H <20>޸ı<DEB8>ʶ
UCHAR mPcProgramIf; // 09H <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽ӿ<CCBD>
UCHAR mPcSubClass; // 0AH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UCHAR mPcBaseClass; // 0BH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UCHAR mPcCacheLine; // 0CH <20><><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD><D0B3><EFBFBD>
UCHAR mPcLatenTimer; // 0DH <20>ӳټ<D3B3><D9BC><EFBFBD><EFBFBD><EFBFBD>
UCHAR mPcHeaderType; // 0EH ͷ<><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UCHAR mPcBistReg; // 0FH <20>ں<EFBFBD><DABA>Բ<EFBFBD><D4B2>ԼĴ<D4BC><C4B4><EFBFBD>
ULONG mPcBaseAddr0; // 10H <20><>ַ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>0
ULONG mPcBaseAddr1; // 14H <20><>ַ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>1
ULONG mPcBaseAddr2; // 18H <20><>ַ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>2
ULONG mPcBaseAddr3; // 1CH <20><>ַ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>3
ULONG mPcBaseAddr4; // 20H <20><>ַ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>4
ULONG mPcBaseAddr5; // 24H <20><>ַ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>5
ULONG mPcCardCis; // 28H
USHORT mPcSubSysVen; // 2CH <20><>ϵͳ<CFB5><CDB3>Ӧ<EFBFBD>̱<EFBFBD>ʶ
USHORT mPcSubSysDev; // 2EH <20><>ϵͳ<CFB5><EFBFBD><E8B1B8>ʶ
ULONG mPcExpansRom; // 30H <20><>չROM<4F><4D>ַ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
UCHAR mPcCapPtr; // 34H
UCHAR mPcReserved1[3]; // 35H
ULONG mPcReserved2; // 38H
UCHAR mPcInterLine; // 3CH <20>ж<EFBFBD><D0B6>߼Ĵ<DFBC><C4B4><EFBFBD>
UCHAR mPcInterPin; // 3DH <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>żĴ<C5BC><C4B4><EFBFBD>
UCHAR mPcMinGrant; // 3EH
UCHAR mPcMaxLatency; // 3FH
} mPCI_CONFIG, *mPPCI_CONFIG;
typedef struct _PCI_EXP_ROM { // PCI<43><49>չROM<4F><4D><EFBFBD><EFBFBD><EFBFBD>ݽṹ
UCHAR mPerRomSig[4]; // 00H PCI<43><49>չROMǩ<4D><C7A9><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>'PCIR'
USHORT mPerVendorId; // 04H <20><>Ӧ<EFBFBD>̱<EFBFBD>ʶ
USHORT mPerDeviceId; // 06H <20><EFBFBD><E8B1B8>ʶ
USHORT mPerVpdPtr; // 08H <20><>Ҫ<EFBFBD><D2AA>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
USHORT mPerStrucLen; // 0AH PCI<43><49>չROM<4F><4D><EFBFBD>ݽṹ<DDBD>ij<EFBFBD><C4B3><EFBFBD>
UCHAR mPerRevision; // 0CH PCI<43><49>չROM<4F><4D><EFBFBD>ݽṹ<DDBD><E1B9B9><EFBFBD>޸İ汾
UCHAR mPerProgramIf; // 0DH <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽ӿ<CCBD>
UCHAR mPerSubClass; // 0EH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UCHAR mPerBaseClass; // 0FH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
USHORT mPerImageLen; // 10H ӳ<>񳤶<EFBFBD>
USHORT mPerImageRev; // 12H ӳ<><D3B3><EFBFBD>д<EFBFBD><D0B4><EFBFBD>/<2F><><EFBFBD>ݵ<EFBFBD><DDB5>޸İ汾
UCHAR mPerCodeType; // 14H <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UCHAR mPerIndicator; // 15H ӳ<><D3B3>ָʾ<D6B8><CABE>־
USHORT mPerReserved; // 16H
} mPCI_EXP_ROM, *mPPCI_EXP_ROM;
typedef struct _CH365_CFG_REG { // CH365оƬ<D0BE><C6AC><EFBFBD><EFBFBD><EFBFBD>üĴ<C3BC><C4B4><EFBFBD>
mPCI_CONFIG mCh365CfgPci; // 00H-3FH,<2C><>64<36>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA>׼PCI<43><49><EFBFBD>ÿռ<C3BF>
UCHAR mCh365CfgCtrl; // 40H оƬ<D0BE><C6AC><EFBFBD>ƼĴ<C6BC><C4B4><EFBFBD>,<2C><>5λֻ<CEBB><D6BB>
UCHAR mCh365CfgDin; // 41H 8λ<38><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><><D6BB>
UCHAR mCh365CfgState; // 42H оƬ״̬<D7B4>Ĵ<EFBFBD><C4B4><EFBFBD><><D6BB>
UCHAR mCh365CfgResv; // 43H
} mCH365_CFG_REG, *mPCH365_CFG_REG;
typedef struct _CH365_IO_REG { // CH365оƬ<D0BE><C6AC>I/O<>ռ<EFBFBD>
UCHAR mCh365IoPort[0xf0]; // 00H-EFH,<2C><>240<34>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA>׼<EFBFBD><D7BC>I/O<>˿<EFBFBD>
union { // <20><><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD>д<EFBFBD>ȡ
USHORT mCh365MemAddr; // F0H <20><EFBFBD><E6B4A2><EFBFBD>ӿ<EFBFBD>: A15-A0<41><30>ַ<EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
struct { // <20><><EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD>д<EFBFBD>ȡ
UCHAR mCh365MemAddrL; // F0H <20><EFBFBD><E6B4A2><EFBFBD>ӿ<EFBFBD>: A7-A0<41><30>ַ<EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
UCHAR mCh365MemAddrH; // F1H <20><EFBFBD><E6B4A2><EFBFBD>ӿ<EFBFBD>: A15-A8<41><38>ַ<EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
};
};
UCHAR mCh365IoResv2; // F2H
UCHAR mCh365MemData; // F3H <20><EFBFBD><E6B4A2><EFBFBD>ӿ<EFBFBD>: <20><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>ȡ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
UCHAR mCh365I2cData; // F4H I2C<32><43><EFBFBD>нӿ<D0BD>: I2C<32><43><EFBFBD>ݴ<EFBFBD>ȡ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
UCHAR mCh365I2cCtrl; // F5H I2C<32><43><EFBFBD>нӿ<D0BD>: I2C<32><43><EFBFBD>ƺ<EFBFBD>״̬<D7B4>Ĵ<EFBFBD><C4B4><EFBFBD>
UCHAR mCh365I2cAddr; // F6H I2C<32><43><EFBFBD>нӿ<D0BD>: I2C<32><43>ַ<EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
UCHAR mCh365I2cDev; // F7H I2C<32><43><EFBFBD>нӿ<D0BD>: I2C<32><EFBFBD><E8B1B8>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
UCHAR mCh365IoCtrl; // F8H оƬ<D0BE><C6AC><EFBFBD>ƼĴ<C6BC><C4B4><EFBFBD>,<2C><>5λֻ<CEBB><D6BB>
UCHAR mCh365IoBuf; // F9H <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBBBBA><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
UCHAR mCh365Speed; // FAH оƬ<D0BE>ٶȿ<D9B6><C8BF>ƼĴ<C6BC><C4B4><EFBFBD>
UCHAR mCh365IoResv3; // FBH
UCHAR mCh365IoTime; // FCH Ӳ<><D3B2>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
UCHAR mCh365IoResv4[3]; // FDH
} mCH365_IO_REG, *mPCH365_IO_REG;
typedef struct _CH365_MEM_REG { // CH365оƬ<D0BE>Ĵ洢<C4B4><E6B4A2><EFBFBD>ռ<EFBFBD>
UCHAR mCh365MemPort[0x8000]; // 0000H-7FFFH,<2C><>32768<36>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA>׼<EFBFBD>Ĵ洢<C4B4><E6B4A2><EFBFBD><EFBFBD>Ԫ
} mCH365_MEM_REG, *mPCH365_MEM_REG;
typedef struct _WIN32_COMMAND { // <20><><EFBFBD><EFBFBD>WIN32<33><32><EFBFBD><EFBFBD><EFBFBD>ӿڽṹ
union {
ULONG mFunction; // <20><><EFBFBD><EFBFBD>ʱָ<CAB1><D6B8><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
NTSTATUS mStatus; // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>״̬
};
PVOID mAddress; // <20><>ʼ<EFBFBD><CABC>ַ,<2C><><EFBFBD>ص<EFBFBD>ַ
ULONG mLength; // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>,<2C><><EFBFBD>غ<EFBFBD><D8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>
UCHAR mBuffer[4]; // <20><><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>Ϊ0<CEAA><30>32KB
} mWIN32_COMMAND, *mPWIN32_COMMAND;
// WIN32Ӧ<32>ò<EFBFBD><C3B2>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD>
#define IOCTL_CH365_COMMAND ( FILE_DEVICE_UNKNOWN << 16 | FILE_ANY_ACCESS << 14 | 0x0f36 << 2 | METHOD_BUFFERED ) // ר<>ýӿ<C3BD>
#define mWIN32_COMMAND_HEAD mOFFSET( mWIN32_COMMAND, mBuffer ) // WIN32<33><32><EFBFBD><EFBFBD><EFBFBD>ӿڵ<D3BF>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
#define mCH365_MAX_NUMBER 16 // <20><><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD>ӵ<EFBFBD>CH365<36><35>
#define mMAX_BUFFER_LENGTH max( sizeof( mCH365_IO_REG ), sizeof( mCH365_MEM_REG ) ) // <20><><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󳤶<EFBFBD>
#define mMAX_COMMAND_LENGTH ( mWIN32_COMMAND_HEAD + mMAX_BUFFER_LENGTH ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹͷ<E1B9B9>ij<EFBFBD><C4B3><EFBFBD>
#define mCH365_MEM_BASE_AUTO ( (PVOID)0xffffffff ) // <20>Զ<EFBFBD><D4B6>趨CH365<36>Ĵ洢<C4B4><E6B4A2><EFBFBD><EFBFBD>ַ
#define mCH365_INT_TOOL_LINE_AUTO 0xffffffff // <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>CH365<36><35><EFBFBD>жϺ<D0B6>
// <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
#define mBitAddr15Out 0x01 // <20>趨A15<31><35><EFBFBD><EFBFBD>ֵ,1*:high,0:low
#define mBitSysExtOut 0x02 // <20>趨SYS_EX<45><58><EFBFBD><EFBFBD>ֵ,1:high,0*:low
#define mBitIntAction 0x04 // <20><EFBFBD>жϼ<D0B6><CFBC><EFBFBD>״̬,1:action,0*:inaction
#define mBitPciIdDef 0x01 // ֻ<><D6BB>,PCI<43><EFBFBD><E8B1B8>ʶ<EFBFBD>ĵ<EFBFBD>ǰѡ<C7B0><D1A1>,1*:default,0:external
#define mBitPortHit 0x04 // ֻ<><D6BB>,<2C><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD>״̬,1:<3A><><EFBFBD><EFBFBD>,0*:<3A><><EFBFBD><EFBFBD>
#define mBitInterRom 0x10 // ֻ<><D6BB>,<2C>ڲ<EFBFBD>Mini-ROM<4F><4D><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD>״̬,1:<3A><><EFBFBD><EFBFBD>,0*:<3A><><EFBFBD><EFBFBD>
#define mBitSysExtOe 0x40 // ֻ<><D6BB>,SYS_EX<45><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>,1*:<3A><><EFBFBD><EFBFBD>,0:<3A><><EFBFBD><EFBFBD>
#define mBitIntEnable 0x80 // ֻ<><D6BB>,<2C>жϹ<D0B6><CFB9>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD>״̬,1:<3A><><EFBFBD><EFBFBD>,0*:<3A><><EFBFBD><EFBFBD>
#define mBitI2cStatus 0x01 // I2C<32>ӿڵIJ<DAB5><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƺ<EFBFBD>״̬,1:<3A><>ʼ/<2F><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>,0*:<3A><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define mBitI2cSclOut 0x80 // ѡ<><D1A1>I2C<32>ӿڵ<D3BF>SCL<43><4C><EFBFBD><EFBFBD>,1:SYS_EX,0*:A15
#define mBitSpeedAct 0x07 // <20>ٶȿ<D9B6><C8BF><EFBFBD>,<2C><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>ʿ<EFBFBD><CABF><EFBFBD>Ϊ<EFBFBD><CEAA>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>30nS
#define mBitSpeedInact 0x10 // <20>ٶȿ<D9B6><C8BF><EFBFBD>,<2C>Ǽ<EFBFBD><C7BC><EFBFBD>״̬<D7B4>Ŀ<EFBFBD><C4BF>п<EFBFBD><D0BF><EFBFBD>,1:ǰ45nS/<2F><>15nS,0:ǰ15nS/<2F><>15nS
#define mBitSpeedPreft 0x80 // <20>ٶȿ<D9B6><C8BF><EFBFBD>,Ԥȡ״̬<D7B4><CCAC><EFBFBD><EFBFBD>λ,1:Ԥȡλ<C8A1><CEBB>Ч,0:Ԥȡλ<C8A1><CEBB>Ч
// Ӧ<>ò<EFBFBD><C3B2>ӿڵĹ<DAB5><C4B9>ܴ<EFBFBD><DCB4><EFBFBD>
#define mFuncNoOperation 0x00000000 // <20>޲<EFBFBD><DEB2><EFBFBD>
#define mFuncGetVersion 0x00000001 // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE>
#define mFuncGetIoBaseAddr 0x00000004 // <20><>ȡI/O<>˿ڻ<CBBF>ַ
#define mFuncSetIoBaseAddr 0x00000005 // <20><><EFBFBD><EFBFBD>I/O<>˿ڻ<CBBF>ַ
#define mFuncGetMemBaseAddr 0x00000006 // <20><>ȡ<EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD>ַ
#define mFuncSetMemBaseAddr 0x00000007 // <20><><EFBFBD>ô洢<C3B4><E6B4A2><EFBFBD><EFBFBD>ַ,<2C>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD>ַ
#define mFuncGetInterLine 0x00000008 // <20><>ȡ<EFBFBD>жϺ<D0B6>
#define mFuncSetInterLine 0x00000009 // <20><><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6>,<2C>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6>
#define mFuncWaitInterrupt 0x0000000a // <20>ȴ<EFBFBD><C8B4>ж<EFBFBD><><D6B1>CH365<36><35><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
#define mFuncAbortWaitInter 0x0000000b // <20><><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4>ж<EFBFBD>,<2C><>ֹ<EFBFBD>ȴ<EFBFBD>
#define mFuncSetExclusive 0x0000000c // <20><><EFBFBD>ö<EFBFBD>ռʹ<D5BC><CAB9>
#define mFuncReadIoByte 0x00000010 // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>,<2C><>ͬһ<CDAC><D2BB><EFBFBD>˿ڵ<CBBF>ַ<EFBFBD><D6B7><EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ
#define mFuncReadIoWord 0x00000011 // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>,<2C><>ͬһ<CDAC><D2BB><EFBFBD>˿ڵ<CBBF>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ
#define mFuncReadIoDword 0x00000012 // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>,<2C><>ͬһ<CDAC><D2BB><EFBFBD>˿ڵ<CBBF>ַ<EFBFBD><D6B7>˫<EFBFBD><CBAB>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ
#define mFuncReadIoBlock 0x00000013 // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>,ÿ<><C3BF>ȡһ<C8A1><D2BB><EFBFBD>ֽ<EFBFBD>,<2C>˿ڵ<CBBF>ַ<EFBFBD><D6B7>һ
#define mFuncWriteIoByte 0x00000014 // д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>,<2C><>ͬһ<CDAC><D2BB><EFBFBD>˿ڵ<CBBF>ַ<EFBFBD><D6B7><EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>д<EFBFBD><D0B4>
#define mFuncWriteIoWord 0x00000015 // д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>,<2C><>ͬһ<CDAC><D2BB><EFBFBD>˿ڵ<CBBF>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>д<EFBFBD><D0B4>
#define mFuncWriteIoDword 0x00000016 // д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>,<2C><>ͬһ<CDAC><D2BB><EFBFBD>˿ڵ<CBBF>ַ<EFBFBD><D6B7>˫<EFBFBD><CBAB>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>д<EFBFBD><D0B4>
#define mFuncWriteIoBlock 0x00000017 // д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>,ÿд<C3BF><D0B4>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>,<2C>˿ڵ<CBBF>ַ<EFBFBD><D6B7>һ
#define mFuncReadMemByte 0x00000018 // <20><>ȡ<EFBFBD><EFBFBD><E6B4A2>/<2F>Ĵ<EFBFBD><C4B4><EFBFBD>
#define mFuncReadMemWord 0x00000019 // <20><>ȡ<EFBFBD><EFBFBD><E6B4A2>/<2F>Ĵ<EFBFBD><C4B4><EFBFBD>
#define mFuncReadMemDword 0x0000001a // <20><>ȡ<EFBFBD><EFBFBD><E6B4A2>/<2F>Ĵ<EFBFBD><C4B4><EFBFBD>
#define mFuncWriteMemByte 0x0000001c // д<><D0B4><EFBFBD><EFBFBD><E6B4A2>/<2F>Ĵ<EFBFBD><C4B4><EFBFBD>
#define mFuncWriteMemWord 0x0000001d // д<><D0B4><EFBFBD><EFBFBD><E6B4A2>/<2F>Ĵ<EFBFBD><C4B4><EFBFBD>
#define mFuncWriteMemDword 0x0000001e // д<><D0B4><EFBFBD><EFBFBD><E6B4A2>/<2F>Ĵ<EFBFBD><C4B4><EFBFBD>
#define mFuncReadConfig 0x00000020 // <20><>ȡPCI<43><49><EFBFBD>ÿռ<C3BF>
#define mFuncWriteConfig 0x00000021 // д<><D0B4>PCI<43><49><EFBFBD>ÿռ<C3BF>
#define mFuncReadBuffer1 0x00000024 // <20><>ȡ<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EEBBBA><EFBFBD><EFBFBD>1
#define mFuncWriteBuffer1 0x00000025 // д<><D0B4><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EEBBBA><EFBFBD><EFBFBD>1
#define mFuncReadBuffer2 0x00000026 // <20><>ȡ<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EEBBBA><EFBFBD><EFBFBD>2
#define mFuncWriteBuffer2 0x00000027 // д<><D0B4><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EEBBBA><EFBFBD><EFBFBD>2
typedef VOID ( CALLBACK * mPCH365_INT_ROUTINE ) ( VOID ); // <20>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
HANDLE WINAPI CH365OpenDevice( // <20><><EFBFBD><EFBFBD>CH365<36>豸,<2C><><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
BOOL iEnableMemory, // <20>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ֧<D2AA>ִ洢<D6B4><E6B4A2>
BOOL iEnableInterrupt ); // <20>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ֧<D2AA><D6A7><EFBFBD>ж<EFBFBD>
VOID WINAPI CH365CloseDevice( ); // <20>ر<EFBFBD>CH365<36>
ULONG WINAPI CH365GetVersion( ); // <20><><EFBFBD><EFBFBD>DLL<4C><EFBFBD><E6B1BE>,<2C><><EFBFBD>ذ汾<D8B0><E6B1BE>
ULONG WINAPI CH365DriverCommand( // ֱ<>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD>0,<2C><><EFBFBD>򷵻<EFBFBD><F2B7B5BB><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
mPWIN32_COMMAND ioCommand ); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B9B9>ָ<EFBFBD><D6B8>
// <20>ó<EFBFBD><C3B3><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5>ú󷵻<C3BA><F3B7B5BB><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ,<2C><><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B9B9>,
// <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>ʧ<EFBFBD><CAA7>ʱΪ0,<2C><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>ʱΪ<CAB1><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>,<2C>򷵻<EFBFBD>mWIN32_COMMAND_HEAD+1,
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>ǰ,<2C>ֱ<EFBFBD><D6B1>ṩ:<3A><><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>,<2C><>ʼ<EFBFBD><CABC>ַ(<28><>ѡ),<2C><>ȡ<EFBFBD><C8A1><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>(<28><>ѡ),
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5>ú<EFBFBD>,<2C>ֱ𷵻<D6B1>:<3A><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>,<2C><><EFBFBD>صĻ<D8B5>ַ(<28><>ѡ),<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>(<28><>ѡ),
// <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>WINDOWS<57><53><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>,<2C><><EFBFBD>Բο<D4B2>NTSTATUS.H,
// <20><><EFBFBD>صĻ<D8B5>ַֻ<D6B7><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><>ȡI/O<><4F>ַ,<2C><>ȡ<EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD>ַ,<2C><>ȡ<EFBFBD>жϺ<D0B6>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򱣳<EFBFBD><F2B1A3B3><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>,<2C><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ϊ0
ULONG WINAPI CH365GetDrvVersion( ); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE>,<2C><><EFBFBD>ذ汾<D8B0><E6B1BE>,<2C><><EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD>0
BOOL WINAPI CH365GetIoBaseAddr( // <20><>ȡI/O<>˿ڵĻ<DAB5>ַ
mPCH365_IO_REG *oIoBaseAddr ); // <20><><EFBFBD><EFBFBD>I/O<>˿ڻ<CBBF>ַ<EFBFBD>ĵ<EFBFBD>Ԫ<EFBFBD><D4AA>ַ
BOOL WINAPI CH365SetIoBaseAddr( // <20>趨I/O<>˿ڵĻ<DAB5>ַ
mPCH365_IO_REG iIoBaseAddr ); // ָ<><D6B8>I/O<>˿ڻ<CBBF>ַ
BOOL WINAPI CH365GetMemBaseAddr( // <20><>ȡ<EFBFBD><EFBFBD><E6B4A2><EFBFBD>Ļ<EFBFBD>ַ
mPCH365_MEM_REG *oMemBaseAddr ); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD>ַ<EFBFBD>ĵ<EFBFBD>Ԫ<EFBFBD><D4AA>ַ
BOOL WINAPI CH365SetMemBaseAddr( // <20><EFBFBD><EFBFBD><E6B4A2><EFBFBD>Ļ<EFBFBD>ַ
mPCH365_MEM_REG iMemBaseAddr ); // ָ<><D6B8><EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD>ַ,Ϊ0<CEAA><30><EFBFBD>رմ洢<D5B4><E6B4A2>,Ϊ-1<><31><EFBFBD>Զ<EFBFBD><D4B6>
BOOL WINAPI CH365GetIntLine( // <20><>ȡ<EFBFBD>жϺ<D0B6>
PULONG oIntLine ); // <20><><EFBFBD><EFBFBD><EFBFBD>жϺŵĵ<C5B5>Ԫ<EFBFBD><D4AA>ַ
BOOL WINAPI CH365SetIntLine( // <20><EFBFBD>жϺ<D0B6>
ULONG iIntLine ); // ָ<><D6B8><EFBFBD>жϺ<D0B6>,Ϊ0<CEAA><30><EFBFBD>ر<EFBFBD><D8B1>ж<EFBFBD>,Ϊ-1<><31><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365WaitInterrupt( ); // <20>ȴ<EFBFBD><C8B4>ж<EFBFBD><D0B6>¼<EFBFBD>
BOOL WINAPI CH365AbortWaitInt( ); // <20><><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4>ж<EFBFBD>
BOOL WINAPI CH365SetIntRoutine( // <20><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mPCH365_INT_ROUTINE iIntRoutine ); // ָ<><D6B8><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ΪNULL<4C><4C>ȡ<EFBFBD><C8A1><EFBFBD>жϷ<D0B6><CFB7><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>øó<C3B8><C3B3><EFBFBD>
BOOL WINAPI CH365ReadIntCommand( // <20><>ȡ<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EEBBBA><EFBFBD><EFBFBD>
mPWIN32_COMMAND oCommand, // ָ<><D6B8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><E3B9BB><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ULONG iCmdIndex ); // <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊ1<CEAA><31><EFBFBD><EFBFBD>2
BOOL WINAPI CH365WriteIntCommand( // д<><D0B4><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EEBBBA><EFBFBD><EFBFBD>
mPWIN32_COMMAND iCommand, // ָ<><D6B8><EFBFBD><EFBFBD>Ϊ<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ULONG iCmdIndex ); // <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊ1<CEAA><31><EFBFBD><EFBFBD>2
BOOL WINAPI CH365ReadIoByte( // <20><>I/O<>˿ڶ<CBBF>ȡһ<C8A1><D2BB><EFBFBD>ֽ<EFBFBD>
PVOID iAddr, // ָ<><D6B8>I/O<>˿ڵĵ<DAB5>ַ
PUCHAR oByte ); // ָ<><D6B8>һ<EFBFBD><D2BB><EFBFBD>ֽڵ<D6BD>Ԫ,<2C><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365ReadIoWord( // <20><>I/O<>˿ڶ<CBBF>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD>
PVOID iAddr, // ָ<><D6B8>I/O<>˿ڵĵ<DAB5>ַ
PUSHORT oWord ); // ָ<><D6B8>һ<EFBFBD><D2BB><EFBFBD>ֵ<EFBFBD>Ԫ,<2C><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365ReadIoDword( // <20><>I/O<>˿ڶ<CBBF>ȡһ<C8A1><D2BB>˫<EFBFBD><CBAB>
PVOID iAddr, // ָ<><D6B8>I/O<>˿ڵĵ<DAB5>ַ
PULONG oDword ); // ָ<><D6B8>һ<EFBFBD><D2BB>˫<EFBFBD>ֵ<EFBFBD>Ԫ,<2C><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365WriteIoByte( // <20><>I/O<>˿<EFBFBD>д<EFBFBD><D0B4>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>
PVOID iAddr, // ָ<><D6B8>I/O<>˿ڵĵ<DAB5>ַ
UCHAR iByte ); // <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365WriteIoWord( // <20><>I/O<>˿<EFBFBD>д<EFBFBD><D0B4>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
PVOID iAddr, // ָ<><D6B8>I/O<>˿ڵĵ<DAB5>ַ
USHORT iWord ); // <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365WriteIoDword( // <20><>I/O<>˿<EFBFBD>д<EFBFBD><D0B4>һ<EFBFBD><D2BB>˫<EFBFBD><CBAB>
PVOID iAddr, // ָ<><D6B8>I/O<>˿ڵĵ<DAB5>ַ
ULONG iDword ); // <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365ReadMemByte( // <20>Ӵ洢<D3B4><E6B4A2><EFBFBD><EFBFBD>ȡһ<C8A1><D2BB><EFBFBD>ֽ<EFBFBD>
PVOID iAddr, // ָ<><D6B8><EFBFBD><EFBFBD><E6B4A2><EFBFBD>ĵ<EFBFBD>ַ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
PUCHAR oByte ); // ָ<><D6B8>һ<EFBFBD><D2BB><EFBFBD>ֽڵ<D6BD>Ԫ,<2C><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365ReadMemDword( // <20>Ӵ洢<D3B4><E6B4A2><EFBFBD><EFBFBD>ȡһ<C8A1><D2BB>˫<EFBFBD><CBAB>
PVOID iAddr, // ָ<><D6B8><EFBFBD><EFBFBD><E6B4A2><EFBFBD>ĵ<EFBFBD>ַ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
PULONG oDword ); // ָ<><D6B8>һ<EFBFBD><D2BB>˫<EFBFBD>ֵ<EFBFBD>Ԫ,<2C><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365WriteMemByte( // <20><><EFBFBD><EFBFBD><E6B4A2>д<EFBFBD><D0B4>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>
PVOID iAddr, // ָ<><D6B8><EFBFBD><EFBFBD><E6B4A2><EFBFBD>ĵ<EFBFBD>ַ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
UCHAR iByte ); // <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365WriteMemDword( // <20><><EFBFBD><EFBFBD><E6B4A2>д<EFBFBD><D0B4>һ<EFBFBD><D2BB>˫<EFBFBD><CBAB>
PVOID iAddr, // ָ<><D6B8><EFBFBD><EFBFBD><E6B4A2><EFBFBD>ĵ<EFBFBD>ַ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
ULONG iDword ); // <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365ReadConfig( // <20><><EFBFBD><EFBFBD><EFBFBD>ÿռ<C3BF><D5BC><EFBFBD>ȡһ<C8A1><D2BB><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
PVOID iOffset, // ָ<><D6B8>ƫ<EFBFBD>Ƶ<EFBFBD>ַ
PUCHAR oByte ); // ָ<><D6B8>һ<EFBFBD><D2BB><EFBFBD>ֽڵ<D6BD>Ԫ,<2C><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365WriteConfig( // <20><><EFBFBD><EFBFBD><EFBFBD>ÿռ<C3BF>д<EFBFBD><D0B4>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
PVOID iOffset, // ָ<><D6B8>ƫ<EFBFBD>Ƶ<EFBFBD>ַ
UCHAR iByte ); // <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365SetA15_A8( // <20><><EFBFBD>øߵ<C3B8>ַ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A15-A8<41><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UCHAR iA15_A8 ); // λ7-λ0<CEBB><30>ӦA15-A8<41><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,1Ϊ<31>ߵ<EFBFBD>ƽ,0Ϊ<30>͵<EFBFBD>ƽ
BOOL WINAPI CH365ReadI2C( // <20><>I2C<32>ӿڶ<D3BF>ȡһ<C8A1><D2BB><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
UCHAR iDevice, // <20><>7λָ<CEBB><D6B8>I2C<32><EFBFBD><E8B1B8>ַ
UCHAR iAddr, // ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>Ԫ<EFBFBD>ĵ<EFBFBD>ַ
PUCHAR oByte ); // ָ<><D6B8>һ<EFBFBD><D2BB><EFBFBD>ֽڵ<D6BD>Ԫ,<2C><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365WriteI2C( // <20><>I2C<32>ӿ<EFBFBD>д<EFBFBD><D0B4>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
UCHAR iDevice, // <20><>7λָ<CEBB><D6B8>I2C<32><EFBFBD><E8B1B8>ַ
UCHAR iAddr, // ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>Ԫ<EFBFBD>ĵ<EFBFBD>ַ
UCHAR iByte ); // <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
HANDLE WINAPI CH365mOpenDevice( // <20><><EFBFBD><EFBFBD>CH365<36>豸,<2C><><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>,0<><30>Ӧ<EFBFBD><D3A6>һ<EFBFBD><D2BB><EFBFBD>
BOOL iEnableMemory, // <20>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ֧<D2AA>ִ洢<D6B4><E6B4A2>
BOOL iEnableInterrupt ); // <20>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ֧<D2AA><D6A7><EFBFBD>ж<EFBFBD>
VOID WINAPI CH365mCloseDevice( // <20>ر<EFBFBD>CH365<36>
ULONG iIndex ); // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
ULONG WINAPI CH365mDriverCommand( // ֱ<>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD>0,<2C><><EFBFBD>򷵻<EFBFBD><F2B7B5BB><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
mPWIN32_COMMAND ioCommand ); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B9B9>ָ<EFBFBD><D6B8>
// <20>ó<EFBFBD><C3B3><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5>ú󷵻<C3BA><F3B7B5BB><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ,<2C><><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B9B9>,
// <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>ʧ<EFBFBD><CAA7>ʱΪ0,<2C><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>ʱΪ<CAB1><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>,<2C>򷵻<EFBFBD>mWIN32_COMMAND_HEAD+1,
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>ǰ,<2C>ֱ<EFBFBD><D6B1>ṩ:<3A><><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>,<2C><>ʼ<EFBFBD><CABC>ַ(<28><>ѡ),<2C><>ȡ<EFBFBD><C8A1><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>(<28><>ѡ),
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5>ú<EFBFBD>,<2C>ֱ𷵻<D6B1>:<3A><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>,<2C><><EFBFBD>صĻ<D8B5>ַ(<28><>ѡ),<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>(<28><>ѡ),
// <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>WINDOWS<57><53><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>,<2C><><EFBFBD>Բο<D4B2>NTSTATUS.H,
// <20><><EFBFBD>صĻ<D8B5>ַֻ<D6B7><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><>ȡI/O<><4F>ַ,<2C><>ȡ<EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD>ַ,<2C><>ȡ<EFBFBD>жϺ<D0B6>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򱣳<EFBFBD><F2B1A3B3><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>,<2C><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ϊ0
BOOL WINAPI CH365mGetIoBaseAddr( // <20><>ȡI/O<>˿ڵĻ<DAB5>ַ
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
mPCH365_IO_REG *oIoBaseAddr ); // <20><><EFBFBD><EFBFBD>I/O<>˿ڻ<CBBF>ַ<EFBFBD>ĵ<EFBFBD>Ԫ<EFBFBD><D4AA>ַ
BOOL WINAPI CH365mSetIoBaseAddr( // <20>趨I/O<>˿ڵĻ<DAB5>ַ
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
mPCH365_IO_REG iIoBaseAddr ); // ָ<><D6B8>I/O<>˿ڻ<CBBF>ַ
BOOL WINAPI CH365mGetMemBaseAddr( // <20><>ȡ<EFBFBD><EFBFBD><E6B4A2><EFBFBD>Ļ<EFBFBD>ַ
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
mPCH365_MEM_REG *oMemBaseAddr ); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD>ַ<EFBFBD>ĵ<EFBFBD>Ԫ<EFBFBD><D4AA>ַ
BOOL WINAPI CH365mSetMemBaseAddr( // <20><EFBFBD><EFBFBD><E6B4A2><EFBFBD>Ļ<EFBFBD>ַ
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
mPCH365_MEM_REG iMemBaseAddr ); // ָ<><D6B8><EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD>ַ,Ϊ0<CEAA><30><EFBFBD>رմ洢<D5B4><E6B4A2>,Ϊ-1<><31><EFBFBD>Զ<EFBFBD><D4B6>
BOOL WINAPI CH365mGetIntLine( // <20><>ȡ<EFBFBD>жϺ<D0B6>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
PULONG oIntLine ); // <20><><EFBFBD><EFBFBD><EFBFBD>жϺŵĵ<C5B5>Ԫ<EFBFBD><D4AA>ַ
BOOL WINAPI CH365mSetIntLine( // <20><EFBFBD>жϺ<D0B6>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
ULONG iIntLine ); // ָ<><D6B8><EFBFBD>жϺ<D0B6>,Ϊ0<CEAA><30><EFBFBD>ر<EFBFBD><D8B1>ж<EFBFBD>,Ϊ-1<><31><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365mWaitInterrupt( // <20>ȴ<EFBFBD><C8B4>ж<EFBFBD><D0B6>¼<EFBFBD>
ULONG iIndex ); // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
BOOL WINAPI CH365mAbortWaitInt( // <20><><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4>ж<EFBFBD>
ULONG iIndex ); // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
BOOL WINAPI CH365mSetIntRoutine( // <20><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
mPCH365_INT_ROUTINE iIntRoutine ); // ָ<><D6B8><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ΪNULL<4C><4C>ȡ<EFBFBD><C8A1><EFBFBD>жϷ<D0B6><CFB7><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>øó<C3B8><C3B3><EFBFBD>
BOOL WINAPI CH365mReadIntCommand( // <20><>ȡ<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EEBBBA><EFBFBD><EFBFBD>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
mPWIN32_COMMAND oCommand, // ָ<><D6B8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><E3B9BB><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ULONG iCmdIndex ); // <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊ1<CEAA><31><EFBFBD><EFBFBD>2
BOOL WINAPI CH365mWriteIntCommand( // д<><D0B4><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EEBBBA><EFBFBD><EFBFBD>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
mPWIN32_COMMAND iCommand, // ָ<><D6B8><EFBFBD><EFBFBD>Ϊ<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ULONG iCmdIndex ); // <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊ1<CEAA><31><EFBFBD><EFBFBD>2
BOOL WINAPI CH365mReadIoByte( // <20><>I/O<>˿ڶ<CBBF>ȡһ<C8A1><D2BB><EFBFBD>ֽ<EFBFBD>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
PVOID iAddr, // ָ<><D6B8>I/O<>˿ڵĵ<DAB5>ַ
PUCHAR oByte ); // ָ<><D6B8>һ<EFBFBD><D2BB><EFBFBD>ֽڵ<D6BD>Ԫ,<2C><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365mReadIoWord( // <20><>I/O<>˿ڶ<CBBF>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
PVOID iAddr, // ָ<><D6B8>I/O<>˿ڵĵ<DAB5>ַ
PUSHORT oWord ); // ָ<><D6B8>һ<EFBFBD><D2BB><EFBFBD>ֵ<EFBFBD>Ԫ,<2C><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365mReadIoDword( // <20><>I/O<>˿ڶ<CBBF>ȡһ<C8A1><D2BB>˫<EFBFBD><CBAB>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
PVOID iAddr, // ָ<><D6B8>I/O<>˿ڵĵ<DAB5>ַ
PULONG oDword ); // ָ<><D6B8>һ<EFBFBD><D2BB>˫<EFBFBD>ֵ<EFBFBD>Ԫ,<2C><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365mWriteIoByte( // <20><>I/O<>˿<EFBFBD>д<EFBFBD><D0B4>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
PVOID iAddr, // ָ<><D6B8>I/O<>˿ڵĵ<DAB5>ַ
UCHAR iByte ); // <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365mWriteIoWord( // <20><>I/O<>˿<EFBFBD>д<EFBFBD><D0B4>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
PVOID iAddr, // ָ<><D6B8>I/O<>˿ڵĵ<DAB5>ַ
USHORT iWord ); // <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365mWriteIoDword( // <20><>I/O<>˿<EFBFBD>д<EFBFBD><D0B4>һ<EFBFBD><D2BB>˫<EFBFBD><CBAB>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
PVOID iAddr, // ָ<><D6B8>I/O<>˿ڵĵ<DAB5>ַ
ULONG iDword ); // <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365mReadMemByte( // <20>Ӵ洢<D3B4><E6B4A2><EFBFBD><EFBFBD>ȡһ<C8A1><D2BB><EFBFBD>ֽ<EFBFBD>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
PVOID iAddr, // ָ<><D6B8><EFBFBD><EFBFBD><E6B4A2><EFBFBD>ĵ<EFBFBD>ַ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
PUCHAR oByte ); // ָ<><D6B8>һ<EFBFBD><D2BB><EFBFBD>ֽڵ<D6BD>Ԫ,<2C><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365mReadMemDword( // <20>Ӵ洢<D3B4><E6B4A2><EFBFBD><EFBFBD>ȡһ<C8A1><D2BB>˫<EFBFBD><CBAB>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
PVOID iAddr, // ָ<><D6B8><EFBFBD><EFBFBD><E6B4A2><EFBFBD>ĵ<EFBFBD>ַ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
PULONG oDword ); // ָ<><D6B8>һ<EFBFBD><D2BB>˫<EFBFBD>ֵ<EFBFBD>Ԫ,<2C><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365mWriteMemByte( // <20><><EFBFBD><EFBFBD><E6B4A2>д<EFBFBD><D0B4>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
PVOID iAddr, // ָ<><D6B8><EFBFBD><EFBFBD><E6B4A2><EFBFBD>ĵ<EFBFBD>ַ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
UCHAR iByte ); // <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365mWriteMemDword( // <20><><EFBFBD><EFBFBD><E6B4A2>д<EFBFBD><D0B4>һ<EFBFBD><D2BB>˫<EFBFBD><CBAB>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
PVOID iAddr, // ָ<><D6B8><EFBFBD><EFBFBD><E6B4A2><EFBFBD>ĵ<EFBFBD>ַ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
ULONG iDword ); // <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365mReadConfig( // <20><><EFBFBD><EFBFBD><EFBFBD>ÿռ<C3BF><D5BC><EFBFBD>ȡһ<C8A1><D2BB><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
PVOID iOffset, // ָ<><D6B8>ƫ<EFBFBD>Ƶ<EFBFBD>ַ
PUCHAR oByte ); // ָ<><D6B8>һ<EFBFBD><D2BB><EFBFBD>ֽڵ<D6BD>Ԫ,<2C><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365mWriteConfig( // <20><><EFBFBD><EFBFBD><EFBFBD>ÿռ<C3BF>д<EFBFBD><D0B4>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
PVOID iOffset, // ָ<><D6B8>ƫ<EFBFBD>Ƶ<EFBFBD>ַ
UCHAR iByte ); // <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365mSetA15_A8( // <20><><EFBFBD>øߵ<C3B8>ַ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A15-A8<41><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
UCHAR iA15_A8 ); // λ7-λ0<CEBB><30>ӦA15-A8<41><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,1Ϊ<31>ߵ<EFBFBD>ƽ,0Ϊ<30>͵<EFBFBD>ƽ
BOOL WINAPI CH365mReadI2C( // <20><>I2C<32>ӿڶ<D3BF>ȡһ<C8A1><D2BB><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
UCHAR iDevice, // <20><>7λָ<CEBB><D6B8>I2C<32><EFBFBD><E8B1B8>ַ
UCHAR iAddr, // ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>Ԫ<EFBFBD>ĵ<EFBFBD>ַ
PUCHAR oByte ); // ָ<><D6B8>һ<EFBFBD><D2BB><EFBFBD>ֽڵ<D6BD>Ԫ,<2C><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365mWriteI2C( // <20><>I2C<32>ӿ<EFBFBD>д<EFBFBD><D0B4>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
UCHAR iDevice, // <20><>7λָ<CEBB><D6B8>I2C<32><EFBFBD><E8B1B8>ַ
UCHAR iAddr, // ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>Ԫ<EFBFBD>ĵ<EFBFBD>ַ
UCHAR iByte ); // <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
BOOL WINAPI CH365DelayUS( // <20><>ʱָ<CAB1><D6B8>΢<EFBFBD><CEA2>
ULONG iDelay ); // ָ<><D6B8>Ҫ<EFBFBD><D2AA>ʱ<EFBFBD><CAB1>΢<EFBFBD><CEA2><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱС<CAB1><D0A1>10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
BOOL WINAPI CH365mAccessBlock( // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
ULONG iAccessMode, // <20>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
PVOID iAddr, // ָ<><D6B8>I/O<>˿ڻ<CBBF><DABB>ߴ<DFB4><E6B4A2><EFBFBD>ĵ<EFBFBD>ַ
PVOID ioBuffer, // ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>
ULONG iLength ); // <20><><EFBFBD>ݿ鳤<DDBF><E9B3A4><><D2B2><EFBFBD>Ƕ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>,<2C><><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD><EFBFBD><EFBFBD>32KB
// iAccessMode <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// #define mFuncReadIoByte 0x00000010 // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>,<2C><>ͬһ<CDAC><D2BB><EFBFBD>˿ڵ<CBBF>ַ<EFBFBD><D6B7><EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ,<2C><><EFBFBD>󳤶<EFBFBD>32KB
// #define mFuncReadIoWord 0x00000011 // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>,<2C><>ͬһ<CDAC><D2BB><EFBFBD>˿ڵ<CBBF>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ,<2C><><EFBFBD>󳤶<EFBFBD>32KB
// #define mFuncReadIoDword 0x00000012 // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>,<2C><>ͬһ<CDAC><D2BB><EFBFBD>˿ڵ<CBBF>ַ<EFBFBD><D6B7>˫<EFBFBD><CBAB>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ,<2C><><EFBFBD>󳤶<EFBFBD>32KB
// #define mFuncReadIoBlock 0x00000013 // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>,ÿ<><C3BF>ȡһ<C8A1><D2BB><EFBFBD>ֽ<EFBFBD>,<2C>˿ڵ<CBBF>ַ<EFBFBD><D6B7>һ,<2C><><EFBFBD>󳤶<EFBFBD>240B(<28><>ƫ<EFBFBD>Ƶ<EFBFBD>ַ00H<30><48><EFBFBD><EFBFBD>EFH)
// #define mFuncWriteIoByte 0x00000014 // д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>,<2C><>ͬһ<CDAC><D2BB><EFBFBD>˿ڵ<CBBF>ַ<EFBFBD><D6B7><EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>д<EFBFBD><D0B4>,<2C><><EFBFBD>󳤶<EFBFBD>32KB
// #define mFuncWriteIoWord 0x00000015 // д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>,<2C><>ͬһ<CDAC><D2BB><EFBFBD>˿ڵ<CBBF>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>д<EFBFBD><D0B4>,<2C><><EFBFBD>󳤶<EFBFBD>32KB
// #define mFuncWriteIoDword 0x00000016 // д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>,<2C><>ͬһ<CDAC><D2BB><EFBFBD>˿ڵ<CBBF>ַ<EFBFBD><D6B7>˫<EFBFBD><CBAB>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>д<EFBFBD><D0B4>,<2C><><EFBFBD>󳤶<EFBFBD>32KB
// #define mFuncWriteIoBlock 0x00000017 // д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>,ÿд<C3BF><D0B4>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>,<2C>˿ڵ<CBBF>ַ<EFBFBD><D6B7>һ,<2C><><EFBFBD>󳤶<EFBFBD>240B(<28><>ƫ<EFBFBD>Ƶ<EFBFBD>ַ00Hд<48><D0B4>EFH)
// #define mFuncReadMemByte 0x00000018 // <20><>ȡ<EFBFBD><EFBFBD><E6B4A2>/<2F>Ĵ<EFBFBD><C4B4><EFBFBD>,<2C><><EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ÿ<><C3BF>ȡһ<C8A1><D2BB><EFBFBD>ֽ<EFBFBD>,<2C><>ַ<EFBFBD><D6B7>һ,<2C><><EFBFBD>󳤶<EFBFBD>32KB(<28><>ƫ<EFBFBD>Ƶ<EFBFBD>ַ0000H<30><48><EFBFBD><EFBFBD>7FFFH)
// #define mFuncReadMemWord 0x00000019 // <20><>ȡ<EFBFBD><EFBFBD><E6B4A2>/<2F>Ĵ<EFBFBD><C4B4><EFBFBD>,<2C><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ÿ<><C3BF>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD>,<2C><>ַ<EFBFBD>Ӷ<EFBFBD>,<2C><><EFBFBD>󳤶<EFBFBD>32KB(<28><>ƫ<EFBFBD>Ƶ<EFBFBD>ַ0000H<30><48><EFBFBD><EFBFBD>7FFFH)
// #define mFuncReadMemDword 0x0000001a // <20><>ȡ<EFBFBD><EFBFBD><E6B4A2>/<2F>Ĵ<EFBFBD><C4B4><EFBFBD>,<2C><>˫<EFBFBD><CBAB>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ÿ<><C3BF>ȡһ<C8A1><D2BB><EFBFBD>ֽ<EFBFBD>,<2C><>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>,<2C><><EFBFBD>󳤶<EFBFBD>32KB(<28><>ƫ<EFBFBD>Ƶ<EFBFBD>ַ0000H<30><48><EFBFBD><EFBFBD>7FFFH)
// #define mFuncWriteMemByte 0x0000001c // д<><D0B4><EFBFBD><EFBFBD><E6B4A2>/<2F>Ĵ<EFBFBD><C4B4><EFBFBD>,<2C><><EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>д,ÿ<><C3BF>ȡһ<C8A1><D2BB><EFBFBD>ֽ<EFBFBD>,<2C><>ַ<EFBFBD><D6B7>һ,<2C><><EFBFBD>󳤶<EFBFBD>32KB(<28><>ƫ<EFBFBD>Ƶ<EFBFBD>ַ0000Hд<48><D0B4>7FFFH)
// #define mFuncWriteMemWord 0x0000001d // д<><D0B4><EFBFBD><EFBFBD><E6B4A2>/<2F>Ĵ<EFBFBD><C4B4><EFBFBD>,<2C><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>д,ÿ<><C3BF>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD>,<2C><>ַ<EFBFBD>Ӷ<EFBFBD>,<2C><><EFBFBD>󳤶<EFBFBD>32KB(<28><>ƫ<EFBFBD>Ƶ<EFBFBD>ַ0000Hд<48><D0B4>7FFFH)
// #define mFuncWriteMemDword 0x0000001e // д<><D0B4><EFBFBD><EFBFBD><E6B4A2>/<2F>Ĵ<EFBFBD><C4B4><EFBFBD>,<2C><>˫<EFBFBD><CBAB>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>д,ÿ<><C3BF>ȡһ<C8A1><D2BB>˫<EFBFBD><CBAB>,<2C><>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>,<2C><><EFBFBD>󳤶<EFBFBD>32KB(<28><>ƫ<EFBFBD>Ƶ<EFBFBD>ַ0000Hд<48><D0B4>7FFFH)
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>֧<EFBFBD><D6A7>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>CH365DLL.H<><48>
BOOL WINAPI CH365mSetExclusive( // <20><><EFBFBD>ö<EFBFBD>ռʹ<D5BC>õ<EFBFBD>ǰCH365<36>
ULONG iIndex, // ָ<><D6B8>CH365<36><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
ULONG iExclusive ); // Ϊ0<CEAA><30><EFBFBD><EFBFBD><E8B1B8><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD>ʹ<EFBFBD><CAB9>,<2C><>0<EFBFBD><30><EFBFBD><EFBFBD>ռʹ<D5BC><CAB9>
#ifdef __cplusplus
}
#endif
#endif // _CH365_DLL_H