aPCI-P32 Windows 95/98/Me/NT4.0/2000/XP API dl

ADTEK SYSTEM SCIENCE Co.,Ltd.
========================================================================

ڎ

1.  Tv
2.  
3.  vO\
4.  APIt@X
4.1.   API
4.1.1.  Apci32GetVersion
4.1.2.  Apci32Create
4.1.3.  Apci32Close
4.1.4.  Apci32GetResource
4.1.5.  Apci32GetSwitchValue
4.2.  I/O API
4.2.1.  Apci32InPort
4.3.  ̑ API
4.3.1.  Apci32GetLastError
5.  bZ[W
6.  萔
6.1.  G[R[h
6.2.  _|[gԍ萔
6.3.  ̑̒萔

========================================================================

1.  Tv

    { aPCI-P32 p[UJ API _Ci~bNNCu
    (ȉuDLLv) xŒ`܂B
    foCXhCȍڍׂɂĂ͐GĂ܂B
    ܂AOCX ɂĂ`܂B
    ȂAP DLL  aPCI-P32 𐧌䂵܂B

========================================================================

2.  

    {Œ` API  Windows(R) 95/Windows(R) 98/Windows(R) Me/
    Windows NT(R) 4.0/Windows(R) 2000  Windows(R) XP ōő
    16 ܂ł aPCI-P32 (ȉufoCXv) 𐧌䂵܂B

========================================================================

3.  vO\

    {Œ` API ̓foCXhCo
    Eapci32.vxd (Windows 95/98/Me)
    Eapci32.sys (Windows NT4.0)
    Eapci32.sys (Windows 2000/XP)
    сAL 3 ɑΉ_Ci~bNNCu
    Eapci32.dll (Windows 95/98/Me)
    Eapci32.dll (Windows NT4.0)
    Eapci32.dll (Windows 2000/XP)
    ɂ܂B

========================================================================

4.  APIt@X

    API ͈ȉ̂悤ɑʂ܂B

        1.   API
        2.  I/O API
        3.  ̑ API

------------------------------------------------------------------------

4.1.   API

------------------------------------------------------------------------

4.1.1.  Apci32GetVersion

@\
    o[W擾

`
EVisual C++
BOOL Apci32GetVersion(PDWORD pdwDllVersion, PDWORD pdwDriverVersion);

EVisual Basic
Function Apci32GetVersion(pdwDllVersion As Long, pdwDriverVersion As Long) As Long

EDelphi
function Apci32GetVersion(var pdwDllVersion: DWORD; var pdwDriverVersion: DWORD): BOOL;


    pdwDllVersion
        DLL ̃o[Wԍi[̈ւ̃|C^B
        NULL B

    pdwDriverVersion
        foCXhCõo[Wԍi[̈ւ̃|C^B
        NULL B

o
    *pdwDllVersion
        DLL ̃o[WԍB

    *pdwDriverVersion
        foCXhCõo[WԍB

߂l
    API IAsԂ܂B
    FALSE
        sB
    TRUE
        IB


    DLL  foCXhCõo[Wԍ擾܂B
        16Bit@W[o[W
        16Bit@}Ci[o[W

G[
    APCI32_ERR_SYSTEM
        Windows  GetLastError() R[ĂB̃tH_
        ɃhCo̗RŃfoCXhCogݍ܂ĂȂ
        \܂B

------------------------------------------------------------------------

4.1.2.  Apci32Create

@\
    foCX̎gp錾

`
EVisual C++
#define APCI32_SLOT_AUTO    ((WORD) ~0U)
BOOL Apci32Create(PWORD pwLogSlot);

EVisual Basic
Global Const APCI32_SLOT_AUTO = &HFFFF
Function Apci32Create(pwLogSlot As Integer) As Long

EDelphi
const
    APCI32_SLOT_AUTO    = $ffff;
function Apci32Create(var pwLogSlot: WORD): BOOL;


    *pwLogSlot
        gpfoCX̘_Xbgԍw肵܂B
        Ŏw肷ԍ aPCI-P32 {[h̘_Xbgԍݒ肵܂B
        ܂ APCI32_SLOT_AUTO w肵ꍇAfoCX݂Ă
        _XbgT܂BłɃAvP[Vɂgp
        ĂfoCX̓XLbv܂B

        ȌAAvP[V͂̒lŃfoCXʂ܂B
        NULL ͕sB

o
    *pwLogSlot
        gp\ȃfoCXꍇ́A̘_Xbgԍ
        i[܂BȂꍇA̒l͖`łB

߂l
    API IAsԂ܂B
    FALSE
        sB
    TRUE
        IB


    Xbgɑ݂Ăł낤foCXAAvP[Vgp
    邱Ƃ foCXhCoɒʒm܂B
    XbgɃfoCX݂ĂȂꍇ́AG[ƂȂ܂B
    Xbg̃foCXłɑ̃AvP[VŎgpĂ
    ꍇG[ƂȂ܂BɂA1 ̃foCX͒P̃Av
    P[VrIɎgp܂B

    Apci32GetVersion ȊO API ĂяoOɕK API Ăяo
    ĂB

G[
    APCI32_ERR_SYSTEM
        Windows  GetLastError() R[ĂB
    APCI32_ERR_NO_DEVICE
        gp\ȃfoCX܂ (APCI32_SLOT_AUTO w肵ꍇ)B
    APCI32_ERR_IN_USE
        w̃foCX͎gpłB
    APCI32_ERR_INVALID_ARGUMENT
        pwLogSlot  NULL łB

     API sꍇAApci32GetLastError()  wLogSlot ɂ
    APCI32_SLOT_AUTO w肵ĂB

------------------------------------------------------------------------

4.1.3.  Apci32Close

@\
    foCXJ

`
EVisual C++
BOOL Apci32Close(WORD wLogSlot);

EVisual Basic
Function Apci32Close(ByVal wLogSlot As Integer) As Long

EDelphi
function Apci32Close(wLogSlot: WORD): BOOL;


    wLogSlot
        foCX̘_Xbgԍw肵܂B

߂l
    API IAsԂ܂B
    FALSE
        sB
    TRUE
        IB


    AvP[VfoCX̎gpIAfoCX𑼂̃AvP[
    VɊJ邱ƂfoCXhCoɒʒm܂B

    AvP[VIOɕK API ĂяoĂB

G[
    APCI32_ERR_SYSTEM
        Windows  GetLastError() R[ĂB
    APCI32_ERR_INVALID_SLOT
        Ș_XbgԍłB
    APCI32_ERR_NO_CREATE
        foCXNGCgĂ܂B

------------------------------------------------------------------------

4.1.4.  Apci32GetResource

@\
    \[X擾

`
EVisual C++
#define APCI32_MAX_MEM      9
#define APCI32_MAX_IO       20
#define APCI32_MAX_IRQ      7
#define APCI32_MAX_DMA      7

/* ؿ\ */
typedef struct _APCI32RESOURCE {
    DWORD  dwNumMemWindows;                    /* س޳        gp */
    DWORD  dwMemBase        [APCI32_MAX_MEM];  /* س޳ްڽ gp */
    DWORD  dwMemLength      [APCI32_MAX_MEM];  /* س޳        gp */
    DWORD  dwMemAttrib      [APCI32_MAX_MEM];  /* س޳      gp */
    DWORD  dwNumIOPorts;                       /* I/O߰Đ                 */
    DWORD  dwIOPortBase     [APCI32_MAX_IO];   /* I/O߰ްڽ          */
    DWORD  dwIOPortLength   [APCI32_MAX_IO];   /* I/O߰Ē                 */
    DWORD  dwNumIRQs;                          /* IRQ              gp */
    DWORD  dwIRQRegisters   [APCI32_MAX_IRQ];  /* IRQؽ             gp */
    DWORD  dwIRQAttrib      [APCI32_MAX_IRQ];  /* IRQؽ         gp */
    DWORD  dwNumDMAs;                          /* DMAِ          gp */
    DWORD  dwDMALst         [APCI32_MAX_DMA];  /* DMAؽ         gp */
    DWORD  dwDMAAttrib      [APCI32_MAX_DMA];  /* DMAّؽ     gp */
    DWORD  dwReserved1      [3];               /* \               gp */
} APCI32RESOURCE, *PAPCI32R;

BOOL Apci32GetResource(WORD wLogSlot, PAPCI32R pres);

EVisual Basic
Global Const APCI32_MAX_MEM = 9
Global Const APCI32_MAX_IO = 20
Global Const APCI32_MAX_IRQ = 7
Global Const APCI32_MAX_DMA = 7

Type APCI32RESOURCE
    dwNumMemWindows As Long                     ' س޳       gp
    dwMemBase(1 To APCI32_MAX_MEM) As Long      ' س޳ްڽgp
    dwMemLength(1 To APCI32_MAX_MEM) As Long    ' س޳       gp
    dwMemAttrib(1 To APCI32_MAX_MEM) As Long    ' س޳     gp
    dwNumIOPorts As Long                        ' I/O߰Đ
    dwIOPortBase(1 To APCI32_MAX_IO) As Long    ' I/O߰ްڽ
    dwIOPortLength(1 To APCI32_MAX_IO) As Long  ' I/O߰Ē
    dwNumIRQs As Long                           ' IRQ             gp
    dwIRQRegisters(1 To APCI32_MAX_IRQ) As Long ' IRQؽ            gp
    dwIRQAttrib(1 To APCI32_MAX_IRQ) As Long    ' IRQؽ        gp
    dwNumDMAs As Long                           ' DMAِ         gp
    dwDMALst(1 To APCI32_MAX_DMA) As Long       ' DMAؽ        gp
    dwDMAAttrib(1 To APCI32_MAX_DMA) As Long    ' DMAّؽ    gp
    dwReserved1(1 To 3) As Long                 ' \              gp
End Type

Function Apci32GetResource(ByVal wLogSlot As Integer, pres As APCI32RESOURCE) As Long

EDelphi
const
  APCI32_MAX_MEM      =  9;
  APCI32_MAX_IO       = 20;
  APCI32_MAX_IRQ      =  7;
  APCI32_MAX_DMA      =  7;

type
  TAPCI32RESOURCE = record
    dwNumMemWindows:                                DWORD;  // س޳(gp)
    dwMemBase:      array [1 .. APCI32_MAX_MEM] of  DWORD;  // س޳ްڽ(gp)
    dwMemLength:    array [1 .. APCI32_MAX_MEM] of  DWORD;  // س޳(gp)
    dwMemAttrib:    array [1 .. APCI32_MAX_MEM] of  DWORD;  // س޳(gp)
    dwNumIOPorts:                                   DWORD;  // I/O߰Đ
    dwIOPortBase:   array [1 .. APCI32_MAX_IO] of   DWORD;  // I/O߰ްڽ
    dwIOPortLength: array [1 .. APCI32_MAX_IO] of   DWORD;  // I/O߰Ē
    dwNumIRQs:                                      DWORD;  // IRQ(gp)
    dwIRQRegisters: array [1 .. APCI32_MAX_IRQ] of  DWORD;  // IRQؽ(gp)
    dwIRQAttrib:    array [1 .. APCI32_MAX_IRQ] of  DWORD;  // IRQؽ(gp)
    dwNumDMAs:                                      DWORD;  // DMAِ(gp)
    dwDMALst:       array [1 .. APCI32_MAX_DMA] of  DWORD;  // DMAؽ(gp)
    dwDMAAttrib:    array [1 .. APCI32_MAX_DMA] of  DWORD;  // DMAّؽ(gp)
    dwReserved1:    array [1 .. 3] of               DWORD;  // \(gp)
  end;

function Apci32GetResource(wLogSlot: WORD; var pres: TAPCI32RESOURCE): BOOL;


    wLogSlot
        foCX̘_XbgԍwB

    pres
        \[Xi[̈ւ̃|C^B
        NULL ͕sB

o
    *pres
        蓖ĂĂ郊\[X̏B

߂l
    API IAsԂ܂B
    FALSE
        sB
    TRUE
        IB


    wLogSlot Ŏw肳ꂽfoCXɊ蓖ĂĂ郊\[X\p
    擾܂B
    ʏ킱 API ͎gpKv͂܂B

G[
    APCI32_ERR_INVALID_SLOT
        Ș_XbgԍłB
    APCI32_ERR_NO_CREATE
        foCXNGCgĂ܂B
    APCI32_ERR_INVALID_ARGUMENT
        pres  NULL łB
    APCI32_ERR_SYSTEM
        Windows  GetLastError() R[ĂB

------------------------------------------------------------------------

4.1.5.  Apci32GetSwitchValue

@\
    [^XCb`̒l擾

`
EVisual C++
BOOL Apci32GetSwitchValue(WORD wLogSlot, PDWORD pdwSwitchValue);

EVisual Basic
Function Apci32GetSwitchValue(ByVal wLogSlot As Integer, pdwSwitchValue As Long) As Long

EDelphi
function Apci32GetSwitchValue(wLogSlot: WORD; var pdwSwitchValue: DWORD): BOOL;


    wLogSlot
        foCX̘_XbgԍwB

    pdwSwitchValue
        [^XCb`̒li[̈ւ̃|C^B
        NULL ͕sB

o
    *pdwSwitchValue
        [^XCb`̒lB

߂l
    API IAsԂ܂B
    FALSE
        sB
    TRUE
        IB


    wLogSlot Ŏw肳ꂽfoCXɊ蓖ĂĂ郍[^XCb`
    l擾܂B

G[
    APCI32_ERR_INVALID_SLOT
        Ș_XbgԍłB
    APCI32_ERR_NO_CREATE
        foCXNGCgĂ܂B
    APCI32_ERR_INVALID_ARGUMENT
        pdwSwitchValue  NULL łB
    APCI32_ERR_SYSTEM
        Windows  GetLastError() R[ĂB

------------------------------------------------------------------------

4.2.  I/O API

------------------------------------------------------------------------

4.2.1.  Apci32InPort

@\
    ͎s

`
EVisual C++
BOOL
Apci32InPort(WORD wLogSlot, DWORD dwLogPort, PBYTE pbInValue);

EVisual Basic
Function Apci32InPort(ByVal wLogSlot As Integer,ByVal dwLogPort As Long, pbInValue As Byte) As Long

EDelphi
function Apci32InPort( wLogSlot: WORD; dwLogPort: DWORD; var pbInValue: BYTE): BOOL;


    wLogSlot
        foCX̘_XbgԍwB

    dwLogPort
        ̘_|[gԍ̓͂s܂B

    pbInValue
        ̓f[^i[̈ւ̃|C^B
        NULL ͕sB

o
    *pbInValue
        ̓f[^B

߂l
    API IAsԂ܂B
    FALSE
        sB
    TRUE
        IB


    wLogSlot Ŏw肳ꂽfoCX̘_|[gԍ dwLogPort 
    ܂B

G[
    APCI32_ERR_INVALID_SLOT
        Ș_XbgԍłB
    APCI32_ERR_NO_CREATE
        foCXNGCgĂ܂B
    APCI32_ERR_INVALID_PORT
        Ș_|[gԍłB
    APCI32_ERR_INVALID_ARGUMENT
        pbInValue  NULL łB

------------------------------------------------------------------------

4.3.  ̑ API

------------------------------------------------------------------------

4.3.1.  Apci32GetLastError

@\
    G[R[h擾

`
EVisual C++
DWORD Apci32GetLastError(WORD wLogSlot);

EVisual Basic
Function Apci32GetLastError(ByVal wLogSlot As Integer) As Long

EDelphi
function Apci32GetLastError(wLogSlot: WORD): DWORD;


    wLogSlot
        foCX̘_XbgԍwB

߂l
    G[R[hB


    ƂŋߋNG[̃R[h擾܂B

========================================================================

5.  bZ[W

    bZ[W͂܂B

========================================================================

6.  萔

------------------------------------------------------------------------

6.1.  G[R[h

#define APCI32_SUCCESS              0   // I
#define APCI32_ERR_SYSTEM           1   // GetLastError sĂ
#define APCI32_ERR_NO_DEVICE        2   // gp\޲Ȃ
#define APCI32_ERR_IN_USE           3   // w肳ꂽ޲͎gp
#define APCI32_ERR_INVALID_SLOT     4   // Ș_ۯĔԍw肵
#define APCI32_ERR_RESOURCE         5   // ؿװ
#define APCI32_ERR_INVALID_PORT     6   // ߰Ăv
#define APCI32_ERR_INVALID_ARGUMENT 7   // Ȉv
#define APCI32_ERR_NO_CREATE        8   // ޲شĂĂ܂

------------------------------------------------------------------------

6.2.  _|[gԍ萔

#define APCI32_PORT_1   0
#define APCI32_PORT_2   1
#define APCI32_PORT_3   2
#define APCI32_PORT_4   3
#define APCI32_PORT_5   4
#define APCI32_PORT_6   5
#define APCI32_PORT_7   6
#define APCI32_PORT_8   7

------------------------------------------------------------------------

6.3.  ̑̒萔

#define APCI32_MAX_SLOTS    16              /* T|[g{[h */
#define APCI32_MAX_PORTS    8               /* ANZX\ȃ|[g */
#define APCI32_SLOT_AUTO    ((WORD)~0U)     /* ftHg  T[` */
