USB$B%^%M!<%8%c$O0J2<$K<($95!G=$r;}$D!#(B
- $B%G%P%$%9$N@\B3$H2r=|$NDLCN(B
- $B%G%P%$%9$N@\B3$b$7$/$O2r=|$r8!=P$7!"(B
$BBP1~$9$k%I%i%$%P$KBP$7$F%i%s%G%V8F$S=P$7$K$h$jDLCN$9$k!#(B
- $B%G%P%$%9$KBP$9$k6&DL=hM}$N$B%G%P%$%9$N@\B3;~$K$O!"BP1~$9$k%I%i%$%P$+$i$N%"%/%;%9$r2DG=$H$9$k$?$a$K(B
$B%j%;%C%H=hM}!"%"%I%l%9$N@_Dj!"3Fl9g$N$_!K%3%s%U%#%.%e%l!<%7%g%s$N@_Dj$r9T$&!#(B
$B%G%P%$%9$N2r=|;~$K$O!"(B
$B%G%P%$%9$X$N%"%/%;%9$r6X;_$9$k$?$a$KI,MW$J=hM}$r9T$&!#(B
- $B%G%P%$%9$H%I%i%$%P$NBP1~IU$1(B
- $B%G%P%$%9$,@\B3$5$l$?>l9g!"EPO?:Q$_$NJ#?t$N%I%i%$%P$KBP$7$F(B
$B@\B3$5$l$?%G%P%$%9$,BP>]$H$9$k%G%P%$%9$"$k$$$O%$%s%?!<%U%'!<%9$+$I$&$+$r(B
$BLd$$9g$o$;!"%I%i%$%P$H$NBP1~IU$1$r9T$&!#(B
- $B%G%P%$%9$H$NDL?.5!G=(B
- $B%3%s%H%m!<%k!&%P%k%/!&%$%s%?%i%W%HE>Aw$r9T$&$?$a$N4X?t$,MQ0U$5$l$F$$$k!#(B
- $B%I%i%$%P$X$N3F
- $B3F$B%G%P%$%9@\B3>pJs$N$B$=$NB>(B
USB$B%G%P%$%9$rBP>]$H$9$k%G%P%$%9%I%i%$%P$O!"(B
$BDL>o$N%I%i%$%P5!G=$K2C$($F0J2<$N5!G=$,I,MW$H$J$k!#(B
- $B%G%P%$%9$N@\B3!&2r=|$KH<$&5!G=(B
- USB$B%G%P%$%9$OG$0U$N;~E@$G@\B3!&2r=|$,9T$o$l$k!#(B
$B$I$N$h$&$J>l9g$G$b!"(B
$B$3$l$i$KBP$9$k=hM}$r3N$BBP>]$H$9$k%G%P%$%9$+$I$&$+$rH=CG$9$k5!G=(B
- $B@\B3$5$l$?%G%P%$%9$"$k$$$O%$%s%?!<%U%'!<%9$,<+J,$,BP>]$H$9$k$b$N$+$I$&$+$r(B
$B%G%P%$%9!&%$%s%?!<%U%'!<%9%G%#%9%/%j%W%?Ey$rFI$_=P$7$FH=CG$9$k5!G=!#(B
- $BBP>]$H$9$k%G%P%$%9$N=i4|2=5!G=(B
- $B%G%P%$%9$=$N$b$N$N=i4|2=$O(BUSB$B%^%M!<%8%c$,9T$&$,!"(B
$B%I%i%$%P$,I,MW$H$9$k(BUSB$B%G%P%$%9$N5!G=$rMxMQ$G$-$k$h$&$K$9$k$?$a$N@_Dj$O(B
$B3F%I%i%$%P$G9T$&I,MW$,$"$k!#(B
- $B%G%P%$%9$H$NDL?.5!G=(B
- $B%G%P%$%9$*$h$S%$%s%?!<%U%'!<%9$N%/%i%9$K1~$8!"(B
$B%G%#%9%/%j%W%?$NFbMF$K=>$C$F(BUSB$B%G%P%$%9$H$NDL?.$r9T$&!#(B
USB$B%^%M!<%8%c$N@)8B;v9`$O0J2<$NDL$j$G$"$k!#(B
- $B%"%$%=%/%m%J%9E>Aw$O%5%]!<%H$7$J$$!#(B
- $B%G%P%$%9$KJ#?t$N%3%s%U%#%.%e%l!<%7%g%s$,B8:_$9$k>l9g!":G=i!J!a%3%s%U%#%.%e%l!<%7%g%s%$%s%G%C%/%9$,(B0$B!K$N%3%s%U%#%.%e%l!<%7%g%s$7$+;HMQ$G$-$J$$!#(B
- $B;HMQ2DG=$J%G%P%$%9$NAm?t$O(B31$B8D!"%$%s%?!<%U%'!<%9$*$h$S%(%s%I%]%$%s%H$N?t$O$=$l$>$l(B64$B8D$G$"$k!#$?$@$7!"(BUSB$B%[%9%H%3%s%H%m!<%i$b(B1$B8D$N%G%P%$%9$H$7$F07$&!#(B
/* $B%$%Y%s%H]%G%P%$%9$G$J$$(B */
#define USB_OWN 1 /* $BBP>]%G%P%$%9(B */
/* USB$B%G%P%$%9%j%/%(%9%H!J(BUSB$B5,3J!K(B */
typedef struct {
UB bmRequestType; /* $BMW5a$9$kBP>]$N@_Dj(B */
UB bRequest; /* $BMW5a%3!<%I(B */
UH wValue; /* $B@_Dj$9$kCM(B */
UH wIndex; /* $BJ8;zNs(Bindex$BEy$N;XDj(B */
UH wLength; /* $BE>AwD9(B */
} usbDeviceRequest;
/* bRequest:$BI8=`MW5a%3!<%I!J(BUSB$B5,3J!K(B */
#define USB_GET_STATUS 0
#define USB_CLEAR_FEATURE 1
#define USB_SET_FEATURE 3
#define USB_SET_ADDRESS 5
#define USB_GET_DESCRIPTOR 6
#define USB_SET_DESCRIPTOR 7
#define USB_GET_CONFIGURATION 8
#define USB_SET_CONFIGURATION 9
#define USB_GET_INTERFACE 10
#define USB_SET_INTERFACE 11
#define USB_SYNCH_FRAME 12
/* bmRequestType$B!J(BUSB$B5,3J!K(B */
#define bmR_DEVICE 0x00
#define bmR_INTERFACE 0x01
#define bmR_ENDPOINT 0x02
#define bmR_OTHER 0x03
#define bmR_STANDARD 0x00
#define bmR_CLASS 0x20
#define bmR_VENDOR 0x40
#define bmR_OUT 0x00
#define bmR_IN 0x80
/* bDescriptorType:$B%G%#%9%/%j%W%?CHqEEN.(B($B!_(B2 mA) */
} usbConfigurationDescriptor;
/* USB $B%$%s%?%U%'!<%9%G%#%9%/%j%W%?!J(BUSB$B5,3J!K(B */
typedef struct {
UB bLength; /* $B%G%#%9%/%j%W%?D9(B */
UB bDescriptorType; /* I/F Descriptor(4) */
UB bInterfaceNumber; /* $B$3$N(BInterface$B$N(BID */
UB bAlternateSetting; /* $BBeBX@_Dj$N(BID */
UB bNumEndpoints; /* $B%(%s%I%]%$%s%H$N?t(B */
UB bInterfaceClass; /* Interface Class */
UB bInterfaceSubClass; /* Interface SubClass */
UB bInterfaceProtocol; /* Interface Protocol */
UB iInterface; /* $BJ8;zNs(Bindex (I/F) */
} usbInterfaceDescriptor;
/* USB $B%(%s%I%]%$%s%H%G%#%9%/%j%W%?!J(BUSB$B5,3J!K(B */
typedef struct {
UB bLength; /* $B%G%#%9%/%j%W%?D9(B */
UB bDescriptorType; /* E/P Descriptor(5) */
UB bEndpointAddress; /* endpoint address */
UB bmAttributes; /* $BE>Aw7A<0(B(Ctrl/Iso..) */
UH wMaxPacketSize; /* $B%Q%1%C%H%5%$%:(B */
UB bInterval; /* Iso/Int $BE>Aw<~4|(B(ms) */
} usbEndpointDescriptor;
/* $B%(%s%I%]%$%s%H%G%#%9%/%j%W%?$N(BbmAttributes$B$NDj5A!J(BUSB$B5,3J!K(B */
#define USB_CONTROL 0
#define USB_ISOCHRONOUS 1
#define USB_BULK 2
#define USB_INTERRUPT 3
/* USB $B%9%H%j%s%0%G%#%9%/%j%W%?!J(BUSB$B5,3J!K(B */
typedef struct {
UB bLength; /* $B%G%#%9%/%j%W%?D9(B */
UB bDescriptorType; /* Str. Descriptor(3) */
UH bString[1]; /* $BJ8;zNs(B (Unicode) */
} usbStringDescriptor;
/* USB$B%$%Y%s%H;XDjMQ9=B$BN!J(BUSB$B%^%M!<%8%c!K(B */
typedef struct {
UB bClass; /* Device/Interface Class */
UB bSubClass; /* Device/Interface SubClass */
UB bProtocol; /* Device/Interface Protocol */
UB mask; /* bClass/bSubClass/bProtocol/devid$B$NA*Br(B */
} usbEventPattern;
/* nowait$B%b!<%I;~$N1~Ez%a%C%;!<%8!J(BUSB$B%^%M!<%8%c!K(B */
typedef struct {
W pid; /* pipe ID */
W datacnt; /* $B%G!<%??t(B */
W error; /* $B%(%i!<%3!<%I(B */
} usbMsg;
/* mask$B$NCM!J(BUSB$B%^%M!<%8%c!K(B */
#define EVENT_CLASS 0x01
#define EVENT_SUBCLASS 0x02
#define EVENT_PROTOCOL 0x04
#define EVENT_ANY 0x08
/* $B%(%i!<%3!<%I(B (USB$B%^%M!<%8%c(B) */
#define USB_OK (EC_OK << 16)
#define USB_ERR_BUSY ((EC_BUSY << 16) | 0)
#define USB_ERR_PAR ((EC_PAR << 16) | 0)
#define USB_ERR_DEVICE ((EC_PAR << 16) | 1)
#define USB_ERR_INTERFACE ((EC_PAR << 16) | 2)
#define USB_ERR_ENDPOINT ((EC_PAR << 16) | 3)
#define USB_ERR_POWER ((EC_LIMIT << 16) | 0)
#define USB_ERR_REQUEST ((EC_DEV << 16) | 0)
#define USB_ERR_SYSTEM ((EC_SYS << 16) | 0)
#define USB_ERR_NOMEM ((EC_NOMEM << 16) | 0)
#define USB_ERR_STALL ((EC_IO << 16) | 2)
#define USB_ERR_ABORT ((EC_IO << 16) | 3)
#define USB_ERR_IO_NAK ((EC_IO << 16) | 6)
#define USB_ERR_IO_SHORT ((EC_IO << 16) | 7)
#define USB_ERR_IO_BUFERR ((EC_IO << 16) | 9)
#define USB_ERR_IO_BABBLE ((EC_IO << 16) | 10)
#define USB_ERR_IO_CRC ((EC_IO << 16) | 11)
#define USB_ERR_IO_BITSTUFF ((EC_IO << 16) | 12)
#define USB_ERR_IO_NORESP ((EC_IO << 16) | 13)
/* usbIoPipe()$B$G$N;XDjMQ!J(BUSB$B%^%M!<%8%c!K(B */
#define USB_WAIT 0x00
#define USB_SHORTNG 0x00
#define USB_NOWAIT 0x01
#define USB_SHORTOK 0x02
/* usbGetHubInfo()$B$G;HMQ$9$k9=B$BN!J(BUSB$B%^%M!<%8%c!K(B */
/* hub status$B9=B$BN!J(BUSB$B%^%M!<%8%c!K(B */
typedef union {
struct {
UH level:3; /* hub$B$NCJ?t(B */
UH self_power:1; /* self powered hub$B$J$i(B1 */
UH reserved:12;
} bmStatus;
UH status;
} usbHubStatus;
/* device status $B!J(BUSB$B%^%M!<%8%c!K(B */
#define PS_PORT_CONNECTION 0x0001
#define PS_PORT_ENABLE 0x0002
#define PS_PORT_SUSPEND 0x0004
#define PS_PORT_OVER_CURRENT 0x0008
#define PS_PORT_RESET 0x0010
#define PS_PORT_POWER 0x0100
#define PS_PORT_LOW_SPEED 0x0200
$BEPO?$7$?%G%P%$%9%I%i%$%P$KBP$7$F$O!"(B
$B%G%P%$%9%I%i%$%P$X$NMW5a
$B%G%P%$%9%I%i%$%P$O!"(B
$B$I$N$h$&$J;~E@$G$b(BUSB$B%$%Y%s%H8F$S=P$7$rB.$d$+$K
USB$B%$%Y%s%H8F$S=P$7$O!"8F$S=P$7$,9T$o$l$F$+$i(B
30$BIC0JFb$Kl9g$O!"(B
$B$=$N%G%P%$%9%I%i%$%P$O%G%P%$%9$r;HMQ$7$J$$$b$N$H$_$J$9!#(B
USB$B%$%Y%s%H8F$S=P$7!&1~Ez$O!"(B
$BDL>o$N%G%P%$%9MW5a!&1~Ez$N%G!<%?7A<0$r;HMQ$7$F0J2<$NFbMF$G9T$o$l$k!#(B
- $B8F$S=P$7!J%G%P%$%9@\B3;~$NMW5a!K!'(B
-
DevReq: devid (bit 6$B!A(B 0) $B@\B3$5$l$?%G%P%$%9$N%"%I%l%9(B
(bit 7) 0
cmd.cmd = DC_USBEVENT
datano = USB_MOUNT
datacnt (bit 7$B!A(B 0) bDeviceClass$B$NCM(B
(bit 8$B!A(B15) bDeviceSubClass$B$NCM(B
(bit16$B!A(B23) bDeviceProtocol$B$NCM(B
taskid $BM=Ls(B(0)
memptr $BM=Ls(B(0)
- $B1~Ez!J%G%P%$%9@\B3;~$NMW5a!K(B
-
DevRsp: devid (bit 6$B!A(B 0) $B@\B3$5$l$?%G%P%$%9$N%"%I%l%9(B
(bit 7) 0
cmd.cmd = DC_USBEVENT
datano $BM=Ls(B
datacnt $BM=Ls(B
error $B1~Ez%3!<%I(B(USB_OWN/USB_NONE)
- $B8F$S=P$7!J%G%P%$%92r=|;~$NMW5a!K!'(B
-
DevReq: devid (bit 6$B!A(B 0) $B@\B3$5$l$?%G%P%$%9$N%"%I%l%9(B
(bit 7) 0
cmd.cmd = DC_USBEVENT
datano = USB_UNMOUNT
datacnt $BM=Ls(B(0)
taskid $BM=Ls(B(0)
memptr $BM=Ls(B(0)
- $B1~Ez!J%G%P%$%92r=|;~$NMW5a!K(B
-
DevRsp$B$K@_Dj$9$Y$-CM$OL5$$!#(Brpl_rdv()$B$G1~Ez$9$k$@$1$GNI$$!#(B
- $B8F$S=P$7!J%$%s%?!<%U%'!<%9@\B3;~$NMW5a!K(B
-
DevReq: devid (bit 6$B!A(B 0) $B@\B3$5$l$?%G%P%$%9$N%"%I%l%9(B
(bit 7) 1
(bit 8$B!A(B15) $B%$%s%?!<%U%'!<%9%G%#%9%/%j%W%?$N(BbInterfaceNumber
cmd.cmd = DC_USBEVENT
datano = USB_MOUNT
datacnt (bit 7$B!A(B 0) bInterfaceClass$B$NCM(B
(bit 8$B!A(B15) bInterfaceSubClass$B$NCM(B
(bit16$B!A(B23) bInterfaceProtocol$B$NCM(B
taskid $BM=Ls(B(0)
memptr $BM=Ls(B(0)
- $B1~Ez!J%$%s%?!<%U%'!<%9@\B3;~$NMW5a!K(B
-
DevRsp: devid (bit 6$B!A(B 0) $B@\B3$5$l$?%G%P%$%9$N%"%I%l%9(B
(bit 7) 1
(bit 8$B!A(B15) $B%$%s%?!<%U%'!<%9%G%#%9%/%j%W%?$N(BbInterfaceNumber
cmd.cmd = DC_USBEVENT
datano $BM=Ls(B
datacnt $BM=Ls(B
error $B1~Ez%3!<%I(B(USB_OWN/USB_NONE)
- $B8F$S=P$7!J%$%s%?!<%U%'!<%92r=|;~$NMW5a!K!'(B
-
DevReq: devid (bit 6$B!A(B 0) $B@\B3$5$l$?%G%P%$%9$N%"%I%l%9(B
(bit 7) 1
(bit 8$B!A(B15) $B%$%s%?!<%U%'!<%9%G%#%9%/%j%W%?$N(BbInterfaceNumber
cmd.cmd = DC_USBEVENT
datano = USB_UNMOUNT
datacnt $BM=Ls(B(0)
taskid $BM=Ls(B(0)
memptr $BM=Ls(B(0)
- $B1~Ez!J%$%s%?!<%U%'!<%92r=|;~$NMW5a!K(B
-
DevRsp$B$K@_Dj$9$Y$-CM$OL5$$!#(Brpl_rdv()$B$G1~Ez$9$k$@$1$GNI$$!#(B
USB_MOUNT
$B%$%Y%s%H!J%G%P%$%9!&%$%s%?!<%U%'!<%9@\B3!K(B
USB$B%G%P%$%9$,@\B3$5$l$?;~E@$GEPO?$5$l$F$$$k%G%P%$%9%I%i%$%P$N$&$A!"(B
$B0J2<$N>r7o$rK~$?$9%I%i%$%P$KBP$7$F=gHV$KH/9T$5$l$k!#(B
$B%I%i%$%P$+$i$N1~Ez%3!<%I$H$7$F(BUSB_OWN
$B$,F@$i$l$?>l9g!"(B
$B$=$N%I%i%$%P$,%G%P%$%9$KBP1~IU$1$i$l$F!"%$%Y%s%H$NH/9T$,=*N;$9$k!#(B
- $B$^$@%G%P%$%9$"$k$$$O%$%s%?!<%U%'!<%9$H$NBP1~IU$1$,$5$l$F$$$J$$!#(B
- $B%G%P%$%9$"$k$$$O%$%s%?!<%U%'!<%9%/%i%9$,(B
$B%I%i%$%PEPO?;~$K@k8@$7$?%/%i%9$H0lCW$7$F$$$k!#(B
$B%G%P%$%9$KBP1~IU$1$i$l$k%I%i%$%P$,B8:_$7$J$$>l9g!"(B
USB$B%^%M!<%8%c$O%3%s%U%#%.%e%l!<%7%g%s%$%s%G%C%/%9$,(B0$B$NFbMF$G(B
$B%G%P%$%9$N%3%s%U%#%.%e%l!<%7%g%s$r9T$&!#(B
$B$=$7$F%G%P%$%9$KBP1~IU$1$i$l$k%I%i%$%P$N8!:w$r9T$&$N$HF1MM$K(B
$B%$%s%?!<%U%'!<%9$KBP1~$9$k%I%i%$%P$N8!:w$r9T$&!#(B
$B%G%P%$%9!&%$%s%?!<%U%'!<%9@\B3%$%Y%s%H$rH/9T$9$k=gHV$O(B
$B%I%i%$%P$rEPO?$7$?=gHV$H5U=g$KH/9T$5$l$k!#(B
$B$D$^$j!"0lHV:G6a$KEPO?$5$l$?%I%i%$%P$,:G=i$K%$%Y%s%H$r
$B%G%P%$%9%I%i%$%P$NEPO?;~E@$G4{$K%G%P%$%9$,@\B3$5$l$F$*$j!"(B
$B$=$N%G%P%$%9$,$^$@%I%i%$%P$KBP1~IU$1$i$l$F$$$J$$>l9g$b(B
USB_MOUNT
$B%$%Y%s%H$,H/@8$9$k!#(B
USB_MOUNT
$B%$%Y%s%H$r]$H$7$F$$$k$b$N$+$I$&$+$r(B
$B%$%Y%s%H8F$S=P$7$GF@$i$l$k%G%P%$%9!&%$%s%?!<%U%'!<%9%/%i%9$d(B
usbDescriptorDevice()
$BEy$GF@$i$l$k%G%#%9%/%j%W%?$r;HMQ$7$F(B
$B%A%'%C%/$9$k!#(B
$B%A%'%C%/$N7k2L!"BP>]$H$9$k%G%P%$%9$G$J$$>l9g$O(B
USB_NONE
$B$N1~Ez%3!<%I$rLa$7!"$3$l0J9_$O(B
$B$=$N%G%P%$%9$KBP$9$k%"%/%;%9$r9T$o$J$$$3$H!#(B
$B%A%'%C%/$N7k2L!"BP>]$H$9$k%G%P%$%9$G$"$k>l9g$O(BUSB_OWN
$B$N(B
$B1~Ez%3!<%I$rLa$9!#(B
$B1~Ez%3!<%I$rLa$9$^$G$N4V$K!"%G%P%$%9$N%3%s%U%#%.%e%l!<%7%g%s(B
$B!J$3$l$O%G%P%$%9$KBP1~IU$1$i$l$k%I%i%$%P$N>l9g$N$_I,MW$H$J$k!K$d!"(B
$B%G%#%9%/%j%W%?$N2r
USB_UNMOUNT
$B%$%Y%s%H!J%G%P%$%9!&%$%s%?!<%U%'!<%92r=|!K(B
USB$B%G%P%$%9$,2r=|$5$l$?;~E@$G!"$=$N%G%P%$%9$*$h$S%$%s%?!<%U%'!<%9$K(B
$BBP1~IU$1$i$l$?%I%i%$%P$KBP$7$F(BUSB_UNMOUNT
$B%$%Y%s%H$,H/9T$5$l$k!#(B
USB_UNMOUNT
$B%$%Y%s%H$r]$H$9$k%G%P%$%9$"$k$$$O%$%s%?!<%U%'!<%9$,2r=|$5$l$?$3$H$KBP1~$9$k(B
$B=hM}$r9T$$!"1~Ez$rLa$9!#(B
$B$3$N%$%Y%s%H$KBP$9$k1~Ez%3!<%I$O0UL#$r;}$?$J$$!#(B
$B%G%P%$%9$,2r=|$5$l$k$H%G%P%$%9$H%I%i%$%P$H$NBP1~IU$1$O2r=|$5$l!"(B
$B%I%i%$%P$N%G%P%$%9$KBP$9$kA`:n$,6X;_$5$l$k!#(B
$B%5%9%Z%s%I!&%l%8%e!<%`=hM}(B
$B%5%9%Z%s%I$K0\9T$9$k:]$O!"(BUSB$B%^%M!<%8%c$O%G%P%$%9$N@\B3$r2r=|$9$k!#(B
$B$h$C$F$3$N;~$O!"(BUSB$B%G%P%$%9$r;HMQ$7$F$$$k%G%P%$%9%I%i%$%P$KBP$7$F(B
$B%G%P%$%9!&%$%s%?!<%U%'!<%92r=|%$%Y%s%H$,H/@8$7!"(B
$B%5%9%Z%s%ICf$O%G%P%$%9$,B8:_$7$J$$>uBV$H$J$k!#(B
$B5U$K%l%8%e!<%`$,9T$o$l$k:]$O!"(BUSB$B%^%M!<%8%c$O%G%P%$%9$N@\B3$r9T$&!#(B
$B$h$C$F!"(BUSB$B%G%P%$%9$r;HMQ$7$F$$$k%G%P%$%9%I%i%$%P$KBP$7$F$O(B
$B%G%P%$%9!&%$%s%?!<%U%'!<%9@\B3%$%Y%s%H$,H/@8$9$k!#(B
USB$B%^%M!<%8%c$O!"%G%P%$%9%I%i%$%P$KBP$7$F(B
$B0J2<$N%5!<%S%9$r3HD%%7%9%F%`%3!<%k$H$7$FDs6!$9$k!#(B
$B%(%i!<%3!<%I$N@bL@$NCf$K$"$k(BUSB_ERR_IO_*
$B$O!"(B
USB$B%G%P%$%9$H$NDL?.Cf$KH/@8$9$k%(%i!<$G$"$k!#(B
$B$3$N%(%i!<$K4X$9$k@bL@$O(B$B$B$G9T$C$F$$$k!#(B
usbRequestDevice |
|
$B%G%P%$%9%j%/%(%9%H$rH/9T(B |
|
$B!Z7A<0![(B
ERR usbRequestDevice(W did, UB *request, UB *data, W len, W *rlen)
$B!Z%Q%i%a!<%?![(B
did | $B%G%P%$%9$N%"%I%l%9(B |
request | $B%G%P%$%9$KBP$7$FAw?.$9$k%G%P%$%9%j%/%(%9%H$N%]%$%s%?(B |
data | $BAw |
len | $BAw |
rlen | $B |
$B!Z%j%?!<%sCM![(B
= 0 (USB_OK) | $B%G%P%$%9%j%/%(%9%H$NH/[email protected]$7$?(B |
< 0 | $B%(%i! |
$B!Z2r@b![(B
$B%G%P%$%9$KBP$7$F!"3F
$B$3$N4X?t$O!"%G%P%$%9$N%*!<%W%s!&%/%m!<%:$K4X78$J$/;HMQ2DG=$G$"$k!#(B
$BF10l%G%P%$%9$KBP$9$k%j%/%(%9%H$rJ#?t$N%?%9%/$+$iH/9T$9$k$3$H$,(B
$B$G$-$k$,!"%G%P%$%9$KBP$7$FAw$i$l$k%j%/%(%9%H$N=gHV$O@hCe=g$G$"$k!#(B
$B$J$*!"J#?t$N%$%s%?!<%U%'!<%9$r;}$D$h$&$J%G%P%$%9$N>l9g!"(B
$BJ#?t$N%I%i%$%P$,F10l%G%P%$%9$KBP$7$F%j%/%(%9%H$r9T$&$3$H$,$"$k$N$G(B
$B%j%/%(%9%H$NFbMF$d=gHV$KCm0U$9$kI,MW$,$"$k!#(B
$B%7%g!<%H%Q%1%C%H!JMW5a$7$?%G!<%?D9$h$jC;$$%G!<%?$rl9g!K(B
$B$K$h$kCfCG$O%(%i!<$H$J$i$J$$!#(B
$B$h$C$F!"Aw$r9T$C$?%G!<%?D9$r3NG'$9$k$N$,K>$^$7$$!#(B
$B%G%P%$%9%j%/%(%9%H$NH/9TCf$OBT$A>uBV$H$J$k!#(B
data$B$K$O(BNULL$B$r;XDj$9$k$3$H$,$G$-$k$,!$$=$N:]$N(Blen$B$O(B0$B$r;XDj$9$k$3$H!#(B
data$B$K(BNULL$B$r;XDj$7$?>uBV$G(Blen$B$,(B0$B0J30$N>l9g$NF0:n$OJ]>Z$7$J$$!#(B
len$B$K;XDj$G$-$kCM$O!$(B4088$B!J(B4096 - $B%G%P%$%9%j%/%(%9%H$NBg$-$5(B(8)$B!K(B
$B%P%$%H$,>e8B$H$J$k!#(B
$B$J$*!"%^%M!<%8%cFbIt$G(Blen$B$G;XDj$7$?CM$r(BwLength$B$H$7$F@_Dj$9$k$?$a!"(B
$B%G%P%$%9%j%/%(%9%H$N(BwLength$B$r;XDj$9$kI,MW$OL5$$!#(B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_DEVICE | did$B$,IT@5!J%G%P%$%9$,B8:_$7$J$$!K(B |
USB_ERR_STALL | STALL$B$,H/@8$7$?(B |
USB_ERR_ABORT | $BDL?.$,%-%c%s%;%k$5$l$?(B |
USB_ERR_IO_* | $BF~=PNO%(%i!<$,H/@8$7$?(B |
USB_ERR_REQUEST | $BH/9T$G$-$J$$%G%P%$%9%j%/%(%9%H$rH/9T$7$h$&$H$7$?(B |
USB_ERR_PAR | request$B$,(BNULL$B$G$"$k(B |
usbDescriptorDevice |
usbDescriptorInterface |
usbDescriptorEndpoint |
|
$B%G%P%$%9!?%$%s%?!<%U%'!<%9!?%(%s%I%]%$%s%H%G%#%9%/%j%W%?$N |
|
$B!Z7A<0![(B
ERR usbDescriptorDevice(W did, UB *data, W len, W *rlen)
ERR usbDescriptorInterface(W iid, UB *data, W len, W *rlen)
ERR usbDescriptorEndpoint(W pid, UB *data, W len, W *rlen)
$B!Z%Q%i%a!<%?![(B
did | $B%G%P%$%9$N%"%I%l%9(B(usbDescriptorDevice()) |
iid | $B%$%s%?!<%U%'!<%9(BID(usbDescriptorInterface()) |
pid | $B%Q%$%W(BID(usbDescriptorPipe()) |
data | $B |
len | $B |
rlen | $B%G%#%9%/%j%W%?$NBg$-$5$r3JG<$9$kNN0h$N%]%$%s%?(B |
$B!Z%j%?!<%sCM![(B
= 0 (USB_OK) | $B%G%#%9%/%j%W%?$N |
< 0 | $B%(%i! |
$B!Z2r@b![(B
(usbDescriptorDevice())
did$B$G;XDj$7$?%G%P%$%9$K4^$^$l$k!"%G%P%$%9%G%#%9%/%j%W%?$H(B
$B%3%s%U%#%.%e%l!<%7%g%s%G%#%9%/%j%W%?(B
$B!J$3$l$K$O%$%s%?!<%U%'!<%9%G%#%9%/%j%W%?$d(B
$B%(%s%I%]%$%s%H%G%#%9%/%j%W%?!"3F
(usbDescriptorInterface(), usbDescriptorEndpoint())
iid$B$b$7$/$O(Bpid$B$G;XDj$7$?%$%s%?!<%U%'!<%9$b$7$/$O(B
$B%(%s%I%]%$%s%H!J%Q%$%W!K$N%G%#%9%/%j%W%?$rl9g$O!"$=$l$b0l=o$K
$B$3$N4X?t$O!"%*!<%W%s!&%/%m!<%:$K4X78$J$/;HMQ$9$k$3$H$,$G$-$k!#(B
usbRequestDevice()$B$G%$%s%?!<%U%'!<%9HV9f$d%(%s%I%]%$%s%H%"%I%l%9$,(B
$BI,MW$K$J$C$?>l9g!"$3$N4X?t$GpJs$r(B
$B;HMQ$9$l$PNI$$!#(B
$B$3$N4X?t$O%G%P%$%9$KBP$9$kDL?.$r9T$o$:!"(BUSB$B%^%M!<%8%cB&$,(B
$B%G%P%$%9@\B3;~$KpJs$r%3%T!<$9$k$@$1$G$"$k!#(B
$B;HMQ$9$k:]$O!"(Bdata=NULL, len=0$B$H$7$F8F$S=P$7!"(Brlen$B$KF@$i$l$?(B
$B%G%#%9%/%j%W%?%5%$%:$r;H$C$F==J,$JNL$N%a%b%j$r3NJ]$7$F$+$i(B
$B:FEY8F$S=P$9$3$H$K$J$k$@$m$&!#(B
USB$B5,3J$KDj$a$i$l$?3F\:Y$K$D$$$F$O!"(BUSB 1.1$B$N5,3J=q$r;2>H$9$k$3$H!#(B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_DEVICE | did$B$,IT@5!J(Bdid$B$G;XDj$7$?%G%P%$%9$OB8:_$7$J$$!K(B |
USB_ERR_INTERFACE | iid$B$,IT@5!J(Biid$B$G;XDj$7$?%$%s%?!<%U%'!<%9$OB8:_$7$J$$!K(B |
USB_ERR_ENDPOINT | pid$B$,IT@5!J(Bpid$B$G;XDj$7$?%(%s%I%]%$%s%H$OB8:_$7$J$$!K(B |
usbConfigDevice |
|
$B%G%P%$%9$N%3%s%U%#%.%e%l!<%7%g%s$N@_Dj!& |
|
$B!Z7A<0![(B
WERR usbConfigDevice(W did, W cfg)
$B!Z%Q%i%a!<%?![(B
did | | $B%G%P%$%9$N%"%I%l%9(B |
cfg | 0$B!A(B255 | $B%3%s%U%#%.%e%l!<%7%g%s$NA*Br!JI8=`%G%P%$%9%j%/%(%9%H$N(BSET_CONFIGURATION$B$rH/9T$9$k!K(B |
| -1 | $B8=:_@_Dj$5$l$F$$$k%3%s%U%#%.%e%l!<%7%g%s$N |
$B!Z%j%?!<%sCM![(B
0$B!A(B255 | $B%3%s%U%#%.%e%l!<%7%g%s$N@[email protected]$7$?!J(Bcfg$B$,(B0$B!A(B255$B$N>l9g!K(B |
| $B8=:_@_Dj$5$l$F$$$k%3%s%U%#%.%e%l!<%7%g%s!J(Bcfg$B$,(B-1$B$N>l9g!K(B |
< 0 | $B%(%i! |
$B!Z2r@b![(B
$B%G%P%$%9$KBP$9$k%3%s%U%#%.%e%l!<%7%g%s$r9T$$!"(B
$B;HMQ$9$k%$%s%?!<%U%'!<%9$r7hDj$9$k!#(B
$B$^$?!"8=:_@_Dj$5$l$F$$$k%3%s%U%#%.%e%l!<%7%g%s$r(B
$B%G%P%$%9$+$i
$B%G%P%$%9$KB0$7$F$$$kA4$F$N%$%s%?!<%U%'!<%9$,(B
$B%/%m!<%:$N>uBV$G$J$$$Hl9g!"%G%P%$%9$O%3%s%U%#%.%e%l!<%7%g%s$5$l$F$$$J$$>uBV$K$J$k!#(B
usbOpenDeivce()
$B$G%*!<%W%s$7$?$P$+$j$N%G%P%$%9$O(B
$B%"%I%l%9$,3d$j?6$i$l$?$@$1$N>uBV$J$N$G!"(B
$BI,$:$3$N4X?t$G%3%s%U%#%.%e%l!<%7%g%s$rA*Br$7!"(B
$B;HMQ$9$k%$%s%?!<%U%'!<%9$r7hDj$9$kI,MW$,$"$k!#(B
$B;HMQ$9$k%$%s%?!<%U%'!<%9$,7hDj$7$F$b!"(B
usbRegistInterface()
$B$GEPO?$r9T$C$?%I%i%$%P$KBP$7$F(B
$B%$%Y%s%H$,5/$3$k$3$H$O$J$$!#(B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_DEVICE | did$B$,IT@5!J%G%P%$%9$,B8:_$7$J$$!K(B |
USB_ERR_STALL | STALL$B$,H/@8$7$?(B |
USB_ERR_ABORT | $BDL?.$,%-%c%s%;%k$5$l$?(B |
USB_ERR_IO_* | $BF~=PNO%(%i!<$,H/@8$7$?(B |
USB_ERR_BUSY | $B%/%m!<%:$7$F$$$J$$%$%s%?!<%U%'!<%9$,B8:_$7$F$$$k(B |
USB_ERR_INTERFACE | $B;XDj$7$?%3%s%U%#%.%e%l!<%7%g%s$OB8:_$7$J$$(B |
USB_ERR_POWER | $B%O%V$NEEN.MFNLITB-$N$?$a!"%3%s%U%#%.%e%l!<%7%g%s$,@_Dj$G$-$J$$(B |
USB_ERR_PAR | cfg$B$NCM$,(B-1$B!A(B255$B0J30$G$"$k(B |
usbConfigInterface |
|
$B%$%s%?!<%U%'!<%9$NBeBX@_Dj(B(alternate setting)$B$N@_Dj!& |
|
$B!Z7A<0![(B
WERR usbConfigInterface(W iid, W alt)
$B!Z%Q%i%a!<%?![(B
iid | | $B%$%s%?!<%U%'!<%9(BID |
alt | 0$B!A(B255 | $B%$%s%?!<%U%'!<%9$NBeBX@_Dj$rA*Br$9$k!J(BSET_INTERFACE$B$rH/9T$9$k!K(B |
| -1 | $B8=:_A*Br$5$l$F$$$kBeBX@_Dj$r |
$B!Z%j%?!<%sCM![(B
0$B!A(B255 | $BBeBX@_Dj$r9T$C$?!J(Balt$B$,(B0$B!A(B255$B$N>l9g!K(B |
| $B8=:_@_Dj$5$l$F$$$kBeBX@_Dj!J(Balt$B$,(B-1$B$N>l9g!K(B |
< 0 | $B%(%i! |
$B!Z2r@b![(B
$B%G%P%$%9$N%$%s%?!<%U%'!<%9$KBP$7!"(B
$BBeBX@_Dj(B(alternate setting)$B$r@_Dj$9$k!#(B
$B$^$?!"%$%s%?!<%U%'!<%9$,$I$N@_Dj$r8=:_;HMQ$7$F$$$k$+$H$$$&>pJs$r(B
$B
$BA4$F$N%Q%$%W$,%/%m!<%:$N>uBV$G$J$$$H
$B%*!<%W%s$7$?$P$+$j$N%G%P%$%9$OBeBX@_Dj$K(B0$B$,;XDj$5$l$?>uBV$K$J$C$F$$$k!#(B
$B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_DEVICE | $B%G%P%$%9$X$NA`:n$,6X;_$5$l$F$$$k!J%G%P%$%9$,%/%m!<%:$5$l$F$$$k!K(B |
USB_ERR_INTERFACE | iid$B$,IT@5!J%$%s%?!<%U%'!<%9$,B8:_$7$J$$!K(B |
USB_ERR_STALL | STALL$B$,H/@8$7$?(B |
USB_ERR_ABORT | $BDL?.$,%-%c%s%;%k$5$l$?(B |
USB_ERR_IO_* | $BF~=PNO%(%i!<$,H/@8$7$?(B |
USB_ERR_BUSY | $B%/%m!<%:$7$F$$$J$$%Q%$%W$,B8:_$7$F$$$k(B |
USB_ERR_ENDPOINT | $B;XDj$7$?BeBX@_Dj$OB8:_$7$J$$(B |
USB_ERR_PAR | alt$B$NCM$,(B-1$B!A(B255$B0J30$G$"$k(B |
usbStallPipe |
|
$B%(%s%I%]%$%s%H$N%9%H!<%k$N@_Dj!&2r=|(B |
|
$B!Z7A<0![(B
WERR usbStallPipe(W pid, W stl)
$B!Z%Q%i%a!<%?![(B
pid | | $B%Q%$%W(BID$B!J(BusbOpenPipe()$B$GF@$k!K(B |
stl | 1 | SET_FEATURE(ENDPOINT_STALL)$B$rH/9T$9$k(B |
| 0 | CLEAR_FEATURE(ENDPOINT_STALL)$B$rH/9T$9$k(B |
| -1 | GET_STATUS(ENDPOINT)$B$rH/9T$9$k(B |
| 2 | SET_FEATURE(ENDPOINT_STALL)$B$rH/9T$7$?8e!"(BCLEAR_FEATURE(ENDPOINT_STALL)$B$rH/9T$9$k(B |
$B!Z%j%?!<%sCM![(B
> 0 | $B%(%s%I%]%$%s%H$N@[email protected]$7$?!J(Bstl$B$,(B0, 1, 2$B$N>l9g!K(B |
| $B%(%s%I%]%$%s%H$N%9%F!<%?%9!J(Bstl$B$,(B-1$B$N>l9g!K(B |
< 0 | $B%(%i! |
$B!Z2r@b![(B
$B%(%s%I%]%$%s%H$KBP$7!"(BSTALL$B$N>uBV$r@_Dj!&
USB$B$G$O%G!<%?E>Aw$r9T$&:]!"%G!<%?$N=gHV$r%H%0%k%S%C%H(B(toggle bit)
$B$H$$$&(B0$B$H(B1$B$NCM$r;HMQ$7$F7h$a$F$$$k!#(B
$B$3$NCM$,%G%P%$%9B&$H%[%9%HB&$G0[$J$C$F$$$k>l9g!"(B
$B%G!<%?$NE>Aw$O@5>o$K9T$o$l$J$$!#(B
$B$3$N%S%C%H$r=i4|2=$9$kL\E*$G(BCLEAR_FEATURE(ENDPOINT_STALL)$B$r(B
$BH/9T$9$k$3$H$,$"$k!#(B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_DEVICE | $B%G%P%$%9$X$NA`:n$,6X;_$5$l$F$$$k(B |
USB_ERR_INTERFACE | $B%$%s%?!<%U%'!<%9$X$NA`:n$,6X;_$5$l$F$$$k(B |
USB_ERR_ENDPOINT | pid$B$,IT@5!J%Q%$%W$,B8:_$7$J$$!K(B |
USB_ERR_STALL | STALL$B$,H/@8$7$?(B |
USB_ERR_ABORT | $BDL?.$,%-%c%s%;%k$5$l$?(B |
USB_ERR_IO_* | $BF~=PNO%(%i!<$,H/@8$7$?(B |
USB_ERR_PAR | stl$B$,(B -1, 0, 1, 2 $B0J30$G$"$k(B |
usbSyncPipe |
|
$B%(%s%I%]%$%s%H$NF14|(B |
|
$B!Z7A<0![(B
WERR usbSyncPipe(W pid)
$B!Z%Q%i%a!<%?![(B
pid | $B%Q%$%W(BID$B!J(BusbOpenPipe()$B$GF@$k!K(B |
$B!Z%j%?!<%sCM![(B
>= 0 | $B%G%P%$%9$,JV$7$F$/$k%U%l!<%`HV9f(B |
< 0 | $B%(%i! |
$B!Z2r@b![(B
$B%(%s%I%]%$%s%H$KBP$7!"(BUSB$BI8=`%G%P%$%9%j%/%(%9%H$N(BSYNCH_FRAME$B$r(B
$BH/9T$9$k!#Aw$r;HMQ$9$k%Q%$%W$G;HMQ$9$k!#(B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_DEVICE | $B%G%P%$%9$X$NA`:n$,6X;_$5$l$F$$$k(B |
USB_ERR_INTERFACE | $B%$%s%?!<%U%'!<%9$X$NA`:n$,6X;_$5$l$F$$$k(B |
USB_ERR_ENDPOINT | pid$B$,IT@5!J%Q%$%W$,B8:_$7$J$$!K(B |
USB_ERR_STALL | STALL$B$,H/@8$7$?(B |
USB_ERR_ABORT | $BDL?.$,%-%c%s%;%k$5$l$?(B |
USB_ERR_IO_* | $BF~=PNO%(%i!<$,H/@8$7$?(B |
usbOpenDevice |
|
$B%G%P%$%9$N%*!<%W%s(B |
|
$B!Z7A<0![(B
ERR usbOpenDevice(W did)
$B!Z%Q%i%a!<%?![(B
did | $B%G%P%$%9$N%"%I%l%9!J%G%P%$%9@\B3;~$N%$%Y%s%H$G |
$B!Z%j%?!<%sCM![(B
> 0 | $B%G%P%$%9$N%"%I%l%9(B |
< 0 | $B%(%i! |
$B!Z2r@b![(B
$B%G%P%$%9$KBP$9$kA`:n$N3+;O$r@k8@$9$k!#(B
$B%G%P%$%9$NB?=E%*!<%W%s$O$G$-$J$$!#(B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_DEVICE | did$B$,IT@5!J%G%P%$%9$,B8:_$7$J$$!K(B |
USB_ERR_BUSY | $B%G%P%$%9$O4{$K%*!<%W%s$5$l$F$$$k(B |
usbCloseDevice |
|
$B%G%P%$%9$N%/%m!<%:(B |
|
$B!Z7A<0![(B
ERR usbCloseDevice(W did)
$B!Z%Q%i%a!<%?![(B
did | $B%G%P%$%9$N%"%I%l%9(B |
$B!Z%j%?!<%sCM![(B
= 0 (USB_OK) | $B%G%P%$%9$r%/%m!<%:$7$?(B |
< 0 | $B%(%i! |
$B!Z2r@b![(B
$B%G%P%$%9$KBP$9$kA`:n$N=*N;$r@k8@$9$k!#(B
$B%G%P%$%9$r%/%m!<%:$9$k$H!"$=$N%G%P%$%9$KB0$7$F$$$k%$%s%?!<%U%'!<%9$d(B
$B%Q%$%W$J$I$b%/%m!<%:$5$l$k!#(B
$B%*!<%W%s$7$?%?%9%/0J30$+$i$N%?%9%/$+$i$b%/%m!<%:$r9T$&$3$H$,$G$-$k!#(B
$B$h$C$F!"(Bdid$B$K8m$C$?CM$r;XDj$7$J$$$h$&$KCm0U$9$k$3$H!#(B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_DEVICE | did$B$,IT@5!J%G%P%$%9$,B8:_$7$J$$!K(B |
usbOpenInterface |
|
$B%$%s%?!<%U%'!<%9$N%*!<%W%s(B |
|
$B!Z7A<0![(B
WERR usbOpenInterface(W did, W ifno)
$B!Z%Q%i%a!<%?![(B
did | $B%G%P%$%9$N%"%I%l%9!J%$%Y%s%H$+$i |
ifno | $B%$%s%?!<%U%'!<%9HV9f!J%$%s%?!<%U%'!<%9%G%#%9%/%j%W%?$N(BbInterfaceNumber$B!K(B |
$B!Z%j%?!<%sCM![(B
>= 0 | $B%$%s%?!<%U%'!<%9(BID(iid) |
< 0 | $B%(%i! |
$B!Z2r@b![(B
$B%$%s%?!<%U%'!<%9$KBP$9$kA`:n$N3+;O$r@k8@$9$k!#(B
$B%$%s%?!<%U%'!<%9$KBP$9$kB?=E%*!<%W%s$O$G$-$J$$!#(B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_DEVICE | did$B$,IT@5!J%G%P%$%9$,B8:_$7$J$$$+!"A`:n$,6X;_$5$l$F$$$k!K(B |
USB_ERR_INTERFACE | ifno$B$,IT@5!J;XDj$7$?HV9f$N%$%s%?!<%U%'!<%9$OB8:_$7$J$$!K(B |
USB_ERR_BUSY | $B%$%s%?!<%U%'!<%9$O4{$K%*!<%W%s$5$l$F$$$k(B |
USB_ERR_NOMEM | $B$3$l0J>e%$%s%?!<%U%'!<%9$r%*!<%W%s$9$k$3$H$,$G$-$J$$(B |
USB_ERR_SYSTEM | USB$B%^%M!<%8%c$NFbIt%(%i!<(B |
usbCloseInterface |
|
$B%$%s%?!<%U%'!<%9$N%/%m!<%:(B |
|
$B!Z7A<0![(B
ERR usbCloseInterface(W iid)
$B!Z%Q%i%a!<%?![(B
iid | $B%$%s%?!<%U%'!<%9(BID |
$B!Z%j%?!<%sCM![(B
= 0 (USB_OK) | $B%$%s%?!<%U%'!<%9$r%/%m!<%:$7$?(B |
< 0 | $B%(%i! |
$B!Z2r@b![(B
$B%$%s%?!<%U%'!<%9$KBP$9$kA`:n$N=*N;$r@k8@$9$k!#(B
$B%$%s%?!<%U%'!<%9$r%/%m!<%:$9$k$H!"$=$N%$%s%?!<%U%'!<%9$KB0$7$F$$$k(B
$B%(%s%I%]%$%s%H$OA4$F%/%m!<%:$5$l$k!#(B
$B%*!<%W%s$7$?%?%9%/0J30$+$i$N%?%9%/$+$i$b%/%m!<%:$r9T$&$3$H$,$G$-$k!#(B
$B$h$C$F!"(Biid$B$K8m$C$?CM$r;XDj$7$J$$$h$&$KCm0U$9$k$3$H!#(B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_INTERFACE | iid$B$,IT@5!J(Biid$B$G;XDj$7$?%$%s%?!<%U%'!<%9$OB8:_$7$J$$!K(B |
usbOpenPipe |
|
$B%(%s%I%]%$%s%H$N%*!<%W%s!J%Q%$%W$N:n@.!K(B |
|
$B!Z7A<0![(B
WERR usbOpenPipe(W iid, W epadr, usbIoMode mode, W mbfid)
$B!Z%Q%i%a!<%?![(B
iid | | $B%$%s%?!<%U%'!<%9(BID$B!J(BusbOpenInterface()$B$GF@$k!K(B |
epadr | | $BA`:n$NBP>]$H$J$k%(%s%I%]%$%s%H%"%I%l%9!J%(%s%I%]%$%s%H%G%#%9%/%j%W%?$N(BbEndpointAddress$B!K(B |
mode | | $BF0:n%b!<%I(B [USB_NOWAIT] | [USB_SHORTOK] |
| USB_NOWAIT | pipe$B$X$N(Bread/write$BCf!"E>Aw$N407k$rBT$?$J$$(B(nowait mode)$B!#;XDj$7$J$$>l9g$O(Bpipe$B$X$N(Bread/write$B$N407k$rBT$D(B (wait mode)$B!#(B |
| USB_SHORTOK | usbIoPipe() $B$G$NE>AwCf!"%7%g!<%H%Q%1%C%H!JMW5a$7$?%G!<%?D9$h$j$bC;$$%G!<%?D9$GE>Aw$,=*N;$7$?>l9g!K$r8!=P$7$F$b%(%i!<$H$7$J$$!#;XDj$7$J$$>l9g$O%7%g!<%H%Q%1%C%H$r8!=P$7$?>l9g$K(BUSB_ERR_SHORT$B$N%(%i!<$rJV$9$h$&$K$J$k!#(B |
mbfid | | nowait$B%b!<%I;HMQ;~$K!"%9%F!<%?%9$rl9g$O%9%F!<%?%9$N |
$B!Z%j%?!<%sCM![(B
>= 0 | $B%Q%$%W$r%*!<%W%s$7$?!J%Q%$%W(BID$B!K(B |
< 0 | $B%(%i! |
$B!Z2r@b![(B
$B%Q%$%W!J%(%s%I%]%$%s%H$KBP$9$kDL?.O)!K$r:n@.$7!"(B
$B;XDj$7$?%(%s%I%]%$%s%H$KBP$9$kA`:n$N3+;O$r@k8@$9$k!#(B
$B%(%s%I%]%$%s%H$KBP$9$kB?=E%*!<%W%s$O$G$-$J$$!#(B
nowait$B%b!<%I$r;HMQ$G$-$k$N$O%$%s%?%i%W%HE>Aw$r;HMQ$9$k(B
$B%(%s%I%]%$%s%H$KBP$7$F$N$_$G$"$k!#(B
$B$=$l0J30$NE>Aw%b!<%I$r;HMQ$9$k%Q%$%W$G$O;XDj$7$J$$$3$H!#(B
wait$B%b!<%I$r;XDj$7$?>l9g!"(Bmbfid$B$NCM$OL5;k$5$l$k!#(B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_DEVICE | $B%G%P%$%9$X$NA`:n$,6X;_$5$l$F$$$k(B |
USB_ERR_INTERFACE | iid$B$,IT@5!J%$%s%?!<%U%'!<%9$,B8:_$7$J$$!K(B |
USB_ERR_ENDPOINT | epadr$B$,IT@5!J;XDj$7$?%"%I%l%9$N%(%s%I%]%$%s%H$OB8:_$7$J$$!K(B |
USB_ERR_BUSY | $B%Q%$%W$O4{$K%*!<%W%s$5$l$F$$$k(B |
USB_ERR_NOMEM | $B$3$l0J>e%Q%$%W$r%*!<%W%s$9$k$3$H$,$G$-$J$$(B |
usbClosePipe |
|
$B%(%s%I%]%$%s%H$N%/%m!<%:!J%Q%$%W$N>C5n!K(B |
|
$B!Z7A<0![(B
ERR usbClosePipe(W pid)
$B!Z%Q%i%a!<%?![(B
$B!Z%j%?!<%sCM![(B
= 0 (USB_OK) | $B%Q%$%W$r%/%m!<%:$7$?(B |
< 0 | $B%(%i! |
$B!Z2r@b![(B
$B%(%s%I%]%$%s%H$KBP$9$kA`:n$N=*N;$r@k8@$9$k!#(B
$B%Q%$%W$r;HMQ$7$F9T$o$l$F$$$kDL?.$OA4$F%-%c%s%;%k$5$l$k!#(B
$BFbIt$G(BusbCancelPipe()
$B$rH/9T$9$k$?$a!"%-%c%s%;%k$,40N;$9$k$^$GBT$D!#(B
$B%*!<%W%s$7$?%?%9%/0J30$+$i$N%?%9%/$+$i$b%/%m!<%:$r9T$&$3$H$,$G$-$k!#(B
$B$h$C$F!"(Bpid$B$K8m$C$?CM$r;XDj$7$J$$$h$&$KCm0U$9$k$3$H!#(B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_ENDPOINT | pid$B$,IT@5!J$=$N%Q%$%W$OB8:_$7$J$$!K(B |
usbIoPipe |
|
$B%(%s%I%]%$%s%H$KBP$9$k%G!<%?$NAw |
|
$B!Z7A<0![(B
ERR usbIoPipe(W pid, UB *buf, W len, W *rlen)
$B!Z%Q%i%a!<%?![(B
pid | $B%Q%$%W(BID |
buf | $BE>Aw$9$k%G!<%?$N@hF,%]%$%s%?(B |
len | $BE>Aw$9$k%G!<%?$NBg$-$5(B |
rlen | $BAw$r9T$C$?%G!<%?D9$r3JG<$9$kNN0h$N%]%$%s%?(B |
$B!Z%j%?!<%sCM![(B
= 0 (USB_OK) | $BE>[email protected]$7$?(B |
< 0 | $B%(%i! |
$B!Z2r@b![(B
$B%Q%$%W(BID$B$G;XDj$7$?%Q%$%W$K!"(B
usbOpenPipe()
$B$G;XDj$7$?E>AwJ}8~$G%G!<%?$rN.$9!#(B
usbOpenPipe()
$B$G(Bnowait$B%b!<%I$r;XDj$7$?>l9g$r=|$-!"(B
$BF0:n$,40N;$9$k$^$G$3$N4X?t$O=*N;$7$J$$!#(B
nowait$B%b!<%I$N>l9g!"(Brlen$B$K$O(B0$B$,3JG<$5$l$k!#(B
$B$^$?!"0J2<$NE@$KCm0U$9$kI,MW$,$"$k!#(B
- $BE>Aw=*N;$NDLCN$*$h$S$=$N%9%F!<%?%9$O(B
usbOpenPipe()$B$G;XDj$7$?%a%C%;!<%8%P%C%U%!$K3JG<$5$l$k(B
$B!J%a%C%;!<%8%P%C%U%!$K6u$-$,L5$$>l9g$O$3$NDLCN$,9T$($J$$$N$G!"(B
$B%a%C%;!<%8%P%C%U%!$N6u$-$K$OCm0U$9$k$3$H!K!#(B
- $BE>Aw$9$k%G!<%?$r3JG<$9$kNN0h$O(B
$BE>Aw$,=*N;$9$k;~E@$^$G3NJ]$5$l$F$$$J$1$l$P$J$i$J$$!#(B
$BE>Aw=*N;A0$K%G!<%?$r3JG<$9$kNN0h$,2rJ|$5$l$?>l9g$NF0:n$O(B
$BJ]>Z$7$J$$!#(B
$B%(%s%I%]%$%s%H$+$i%G!<%?$rl9g$O(Blen$B$r%(%s%I%]%$%s%H$N(BwMaxPacketSize$B$NG\?t$K$7$J$$$H(B
$BFI$_Aw$,9T$($J$/$J$C$F$7$^$&!#(B
$BAw?.$9$k>l9g$O(Bdat$B$K(BNULL$B$r;XDj$7$F$O$J$i$J$$!#(B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_DEVICE | $B%G%P%$%9$X$NA`:n$,6X;_$5$l$F$$$k(B |
USB_ERR_INTERFACE | $B%$%s%?!<%U%'!<%9$X$NA`:n$,6X;_$5$l$F$$$k(B |
USB_ERR_ENDPOINT | pid$B$,IT@5!J%Q%$%W$,B8:_$7$J$$!K(B |
USB_ERR_STALL | STALL$B$,H/@8$7$?(B |
USB_ERR_ABORT | $BDL?.$,%-%c%s%;%k$5$l$?(B |
USB_ERR_IO_* | $BF~=PNO%(%i!<$,H/@8$7$?(B |
USB_ERR_BUSY | $BAw?.MW5a$r |
usbCancelDevice |
usbCancelInterface |
usbCancelPipe |
|
$BDL?.$N%-%c%s%;%k!J%G%P%$%9!&%$%s%?!<%U%'!<%9!&%(%s%I%]%$%s%HC10L!K(B |
|
$B!Z7A<0![(B
ERR usbCancelDevice(W did)
ERR usbCancelInterface(W iid)
ERR usbCancelPipe(W pid)
$B!Z%Q%i%a!<%?![(B
did | $B%G%P%$%9$N%"%I%l%9!J(BusbCancelDevice()$B$N>l9g!K(B |
iid | $B%$%s%?!<%U%'!<%9(BID$B!J(BusbCancelInterface()$B$N>l9g!K(B |
pid | $B%Q%$%W(BID$B!J(BusbCancelPipe()$B$N>l9g!K(B |
$B!Z%j%?!<%sCM![(B
= 0 (USB_OK) | $B%-%c%s%;%[email protected]$7$?(B |
< 0 | $B%(%i! |
$B!Z2r@b![(B
usbCancelPipe()
$B$O!"(Bpid$B$G;XDj$7$?%Q%$%W$r;HMQ$7$F9T$o$l$F$$$kDL?.$r%-%c%s%;%k$9$k!#(B
usbCancelInterface()
$B$O(Biid$B$G;XDj$7$?(B
$B%$%s%?!<%U%'!<%9$K4^$^$l$kA4$F$N%Q%$%W$NDL?.$r%-%c%s%;%k$9$k!#(B
usbCancelDevice()
$B$O(Bdid$B$G;XDj$7$?%G%P%$%9$K4^$^$l$k(B
$BA4$F$N%Q%$%W$NDL?.$r%-%c%s%;%k$9$k!#(B
wait$B%b!<%I$N(BusbIoPipe()$B$GDL?.$r9T$C$F$$$k%?%9%/$G$O!"(B
USB_ERR_ABORT$B$N%(%i!<%3!<%I$,JV$k!#(B
nowait$B%b!<%I$N>l9g!"(BusbOpenPipe()$B$G;XDj$7$?%a%C%;!<%8%P%C%U%!$K(B
$B%a%C%;!<%8$,3JG<$5$l!"$=$N%(%i!<%3!<%I$O(BUSB_ERR_ABORT$B$H$J$k!#(B
$B$^$?!"BP>]$H$9$k%Q%$%W$N(Bwait/nowait$B%b!<%I$K4X$o$i$:!"$3$N4X?t$O(B
$B%Q%$%W$NDL?.$,CfCG$5$l$k$^$GBT$A>uBV$H$J$k!#(B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_DEVICE | did$B$,IT@5!J%G%P%$%9$,B8:_$7$J$$!K(B |
USB_ERR_INTERFACE | iid$B$,IT@5!J%$%s%?!<%U%'!<%9$,B8:_$7$J$$!K(B |
USB_ERR_ENDPOINT | pid$B$,IT@5!J%Q%$%W$,B8:_$7$J$$!K(B |
usbAlivePipe |
|
$B%Q%$%W$,;HMQ$G$-$k$+$r%A%'%C%/(B |
|
$B!Z7A<0![(B
ERR usbAlivePipe(W pid)
$B!Z%Q%i%a!<%?![(B
$B!Z%j%?!<%sCM![(B
= 0 (USB_OK) | $B%Q%$%W$O;HMQ2DG=$G$"$k(B |
< 0 | $B%(%i! |
$B!Z2r@b![(B
pid$B$G;XDj$7$?%Q%$%W$,;HMQ2DG=$G$"$k$+$I$&$+$r%A%'%C%/$9$k!#(B
$BDL?.$,CfCG$5$l$?:]$J$I$G!"$=$l0J9_$N%"%/%;%9$r9T$&$3$H$,(B
$B$G$-$k$+$I$&$+$rCN$kL\E*$G;HMQ$5$l$k!#(B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_DEVICE | $B%G%P%$%9$OB8:_$7$J$$(B |
USB_ERR_INTERFACE | $B%$%s%?!<%U%'!<%9$OB8:_$7$J$$(B |
USB_ERR_ENDPOINT | $B%Q%$%W$OB8:_$7$J$$(B |
usbRegistDevice |
|
$B%G%P%$%9@\B3!&2r=|%$%Y%s%H$NDLCN@h$rEPO?(B |
|
$B!Z7A<0![(B
ERR usbRegistDevice(ID portid, usbEventPattern *pattern)
$B!Z%Q%i%a!<%?![(B
portid | $B%G%P%$%9%$%Y%s%H |
pattern | $B%$%Y%s%HDLCN>r7o$N%]%$%s%?!J(Bpattern = NULL$B$N>l9g$OEPO?$N2r=|$K$J$j!"$3$l0J9_$O;XDj$7$?%]!<%H$KBP$9$k%$%Y%s%H$NDLCN$r9T$o$J$/$J$k!K(B |
$B!Z%j%?!<%sCM![(B
= 0 (USB_OK) | [email protected]$7$?(B |
< 0 | $B%(%i! |
$B!Z2r@b![(B
USB$B%G%P%$%9$N@\B3!&2r=|;~$KH/@8$9$k%$%Y%s%H!J%G%P%$%9%$%Y%s%H!K$N(B
$BAw$j@h$r;XDj$9$k!#%G%P%$%9%$%Y%s%H$Nr7o$O(Bpattern$B$G;XDj$9$k!#(B
$B0l$D$N%]!<%H$KJ#?t$N>r7o$rEPO?$9$k$3$H$,2DG=$@$,!"(B
$B>C5n$9$k>l9g$O%]!<%H$K4XO"IU$1$i$l$?A4$F$N>r7o$,>C5n$5$l$k!#(B
$BDL>o$O!"8e=R$N(BusbRegistInterface()
$B$r;HMQ$7$F(B
$B%$%s%?!<%U%'!<%9C10L$N%I%i%$%P$r:n@.$9$kJ}$,4JC1$@$H;W$o$l$k!#(B
usbEventPattern$B9=B$BN$O0J2<$N7A$r$H$k!#$3$N9=B$BN$O!"8e=R$N(B
usbRegistInterface()
$B$G$b;HMQ$9$k!#(B
typedef struct {
UB bClass;
UB bSubClass;
UB bProtocol;
UB mask;
} usbEventPattern;
usbRegistDevice()
$B$r;HMQ$9$k>l9g!"(B
bClass, bSubClass, bProtocol$B$NCM$O%G%P%$%9%G%#%9%/%j%W%?$N(B
bDeviceClass, bDeviceSubClass, bDeviceProtocol$B$KBP1~$9$k!#(B
usbRegistInterface()
$B$r;HMQ$9$k>l9g!"(B
bClass, bSubClass, bProtocol$B$NCM$O%$%s%?!<%U%'!<%9%G%#%9%/%j%W%?$N(B
bInterfaceClass, bInterfaceSubClass, bInterfaceProcotol$B$KBP1~$9$k!#(B
mask$B$O0J2<$N#4]$H$9$k%G%P%$%9$KBP$9$k%$%Y%s%H$rH/@8$5$;$k(B
$B!J$?$@$7!"(Bmask$B$K(B0$B$O;XDj$G$-$J$$!K!#(B
EVENT_ANY | $B%G%P%$%9!&%$%s%?!<%U%'!<%9$N |
EVENT_CLASS | bClass$B$rHf3SBP>]$H$9$k(B |
EVENT_SUBCLASS | bSubClass$B$rHf3SBP>]$H$9$k(B |
EVENT_PROTOCOL | bProtocol$B$rHf3SBP>]$H$9$k(B |
$B!Z%(%i!<%3!<%I![(B
USB_ERR_DEVICE | $B;XDj$7$?%]!<%H$KBP$9$k%G%P%$%9@\B3%$%Y%s%H$NEPO?$,9T$o$l$F$$$J$$!J(Bpattern = NULL$B$N;~$KH/@8!K(B |
USB_ERR_NOMEM | $B$3$l0J>e%G%P%$%9%$%Y%s%H$rEPO?$G$-$J$$(B |
USB_ERR_PAR | pattern.mask$B$,(B0$B$G$"$k(B |
usbRegistInterface |
|
$B%$%s%?!<%U%'!<%9@\B3!&2r=|%$%Y%s%H$NDLCN@h$rEPO?(B |
|
$B!Z7A<0![(B
ERR usbRegistInterface(ID portid, usbEventPattern *pattern)
$B!Z%Q%i%a!<%?![(B
portid | $B%G%P%$%9%$%Y%s%H |
pattern | $B%$%Y%s%HDLCN>r7o$N%]%$%s%?!J(Bpattern = NULL$B$N>l9g$OEPO?$N2r=|$K$J$j!"$3$l0J9_$O;XDj$7$?%]!<%H$KBP$9$k%$%Y%s%H$NDLCN$r9T$o$J$/$J$k!K(B |
$B!Z%j%?!<%sCM![(B
= 0 (USB_OK) | [email protected]$7$?(B |
< 0 | $B%(%i! |
$B!Z2r@b![(B
USB$B%G%P%$%9$N@\B3$,9T$o$l$?$b$N$N!"%G%P%$%9$KBP1~$9$k%I%i%$%P$,(B
$BB8:_$7$J$$>l9g$O(BUSB$B%^%M!<%8%cB&$G%3%s%U%#%.%e%l!<%7%g%s$r9T$&!#(B
$B$3$N:]$K;HMQ$5$l$k%3%s%U%#%.%e%l!<%7%g%s$O!"0lHV:G=i$KFI$_=P$;$k(B
$B!J%3%s%U%#%.%e%l!<%7%g%s%$%s%G%C%/%9$,(B0$B$N!K(B
$B%3%s%U%#%.%e%l!<%7%g%s%G%#%9%/%j%W%?$r;HMQ$9$k!#(B
USB$B%^%M!<%8%c$K$h$k%3%s%U%#%.%e%l!<%7%g%s$,=*N;$7!"(B
$B;HMQ2DG=$J%$%s%?!<%U%'!<%9$,7hDj$7$?;~$KH/@8$9$k%$%Y%s%H(B
$B!J%$%s%?!<%U%'!<%9%$%Y%s%H!K$NAw$j@h$r;XDj$9$k!#(B
$B%$%s%?!<%U%'!<%9%$%Y%s%H$Nr7o$O(Bpattern$B$G;XDj$9$k!#(B
$B$J$*!"%$%s%?!<%U%'!<%9%/%i%9$,9gCW$7$F$$$F$b!"(B
bAlternateSetting$B$,(B0$B$G$J$$>l9g$O%$%Y%s%H$NH/@8BP>]$H$O$J$i$J$$!#(B
usbEventPattern$B9=B$BN$K4X$9$k@bL@$O!"(B
usbRegistDevice()
$B$N9`$K$"$k!#(B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_INTERFACE | $B;XDj$7$?%]!<%H$KBP$9$k%$%s%?!<%U%'!<%9@\B3%$%Y%s%H$NEPO?$,9T$o$l$F$$$J$$!J(Bpattern = NULL$B$N;~$KH/@8!K(B |
USB_ERR_NOMEM | $B$3$l0J>e%$%s%?!<%U%'!<%9%$%Y%s%H$rEPO?$G$-$J$$(B |
USB_ERR_PAR | pattern.mask$B$,(B0$B$G$"$k(B |
usbSuspend |
usbResume |
|
USB$B%^%M!<%8%c$N%5%9%Z%s%I!&%l%8%e!<%`@)8f(B |
|
$B!Z7A<0![(B
VOID usbSuspend(Bool start)
VOID usbResume(Bool start)
$B!Z%Q%i%a!<%?![(B
start | True | $B%5%9%Z%s%I0\9T=hM}$r3+;O$9$k(B(usbSuspend() ) |
| | $B2?$b$7$J$$(B(usbResume() ) |
| False | $B2?$b$7$J$$(B(usbSuspend() ) |
| | $B%l%8%e!<%`0\9T=hM}$r3+;O$9$k(B(usbResume() ) |
$B!Z%j%?!<%sCM![(B
$B!Z2r@b![(B
$B%7%9%F%`$N%5%9%Z%s%I!&%l%8%e!<%`=hM}$r(BUSB$B%^%M!<%8%c$KDLCN$9$k!#(B
$B%5%9%Z%s%ICf$O%G%P%$%9@\B3!&2r=|$r8!=P$9$k$3$H$,$G$-$J$/$J$k$?$a(B
$B%5%9%Z%s%ICf$O%G%P%$%9$r2r=|$7!"%l%8%e!<%`;~$K%G%P%$%9$r@\B3$9$k(B
$B=hM}$r9T$C$F$$$k!#(B
$B$h$C$F!"%5%9%Z%s%I=hM}Cf$K%G%P%$%9!&%$%s%?!<%U%'!<%92r=|%$%Y%s%H$,!"(B
$B%l%8%e!<%`=hM}Cf$K%G%P%$%9!&%$%s%?!<%U%'!<%9@\B3%$%Y%s%H$,H/@8$9$k!#(B
$B!J%G%P%$%9%I%i%$%P$O!"$3$l$i$N%$%Y%s%H$r
usbSuspend()
$B$b$7$/$O(BusbResume()
$B$N(B
$B$I$A$i$+$N=hM}$,=*N;$9$k$^$G$b$&JRJ}$N=hM}$r9T$C$?>l9g$NF0:n$O(B
$BJ]>Z$7$J$$!#(B
usbResetDevice |
|
$B%G%P%$%9$N%j%;%C%H!J%=%U%H%&%'%"$K$h$k%G%P%$%9$N@Z$jN%$7!&:F@\B3!K(B |
|
$B!Z7A<0![(B
ERR usbResetDevice(W did)
$B!Z%Q%i%a!<%?![(B
did | $B%G%P%$%9$N%"%I%l%9(B |
$B!Z%j%?!<%sCM![(B
= 0 (USB_OK) | $B%G%P%$%9$r%j%;%C%H$7$?(B |
< 0 | $B%(%i!<(B |
$B!Z2r@b![(B
did$B$G;XDj$7$?%G%P%$%9$r%j%;%C%H$9$k!#(B
$B%G%P%$%9$r0lC62r=|$7!":FEY@\B3$7$?$NF1$88z2L$,$"$j!"(B
$B%j%;%C%H$NBP>]$K$J$C$?%G%P%$%9$KBP1~IU$1$i$l$F$$$k%I%i%$%P$K$O(B
$B%G%P%$%92r=|%$%Y%s%H"*%G%P%$%9@\B3%$%Y%s%H$N=g$K%$%Y%s%H$,(B
$BAw$i$l$k!#(B
$B%j%;%C%H$r9T$C$?8e$N%G%P%$%9$N%"%I%l%9$O%j%;%C%H$r9T$&A0$H(B
$BF1$8$H$O8B$i$J$$!#(B
$B$^$?!"%G%P%$%9$N%j%;%C%H$,40N;$9$k$^$G$3$N4X?t$,BT$D$3$H$OL5$$!#(B
$B!Z%(%i!<%3!<%I![(B
USB_ERR_DEVICE | did$B$,IT@5!J%G%P%$%9$,B8:_$7$J$$!K(B |
usbGetHubInfo |
|
$B%G%P%$%9@\B3>pJs$N |
|
$B!Z7A<0![(B
WERR usbGetHubInfo(W *report, W size)
$B!Z%Q%i%a!<%?![(B
report | $B@\B3>pJs$r3JG<$9$kNN0h$N%]%$%s%?(B |
size | $B@\B3>pJs$r3JG<$9$kNN0h$NBg$-$5(B |
$B!Z%j%?!<%sCM![(B
>= 0 | $B@\B3>pJs$N%5%$%:!J%P%$%H!K(B |
< 0 | $B%(%i!<(B |
$B!Z2r@b![(B
USB$B%O%V%G%P%$%9$N@\B3>pJs$r
bit 31 16 15 0
+0 [[ hub device$B$N%"%I%l%9(B ][ hub device$B$N%9%F!<%?%9(B ]]
bit 31 8 7 0
+4 [[ $BL$;HMQ(B(0) ][hub device$B$N%]!<%H?t(B]]
+8$B!A(B (port$B$N?t$@$17+$jJV$7(B)
bit 31 16 15 0
[[ $B@\B3$5$l$F$$$k(Bdevice$B$N(Baddr. ][ device$B$N%9%F!<%?%9(B ]]
hub device$B$N%9%F!<%?%9$O0J2<$N9=B$BN$GI=$5$l$k!#(B
typedef union {
struct {
UH level:3; /* hub$B$NCJ?t(B */
UH self_power:1; /* self powered hub$B$J$i(B1 */
UH reserved:12;
} bmStatus;
UH status;
} usbHubStatus;
- hub device$B$K@\B3$5$l$F$$$k%G%P%$%9$,B8:_$7$J$$>l9g!"(Bdevice$B$N%"%I%l%9$O(B-1$B$H$J$k!#(B
- device$B$N%9%F!<%?%9$O0J2<$NDL$j$G$"$k!#(B
PS_PORT_CONNECTION | 0x0001 | $B%G%P%$%9$,@\B3$5$l$F$$$k>l9g$K@_Dj$5$l$k(B |
PS_PORT_ENABLE | 0x0002 | $B%G%P%$%9$,%*!<%W%s$5$l$F$$$k>l9g$K@_Dj$5$l$F$$$k(B |
PS_PORT_SUSPEND | 0x0004 | $B%G%P%$%9$,%5%9%Z%s%I>uBV$N>l9g$K@_Dj$5$l$k!JDL>o!"$3$NCM$,@_Dj$5$l$k$3$H$O$J$$!K(B |
PS_PORT_OVER_CURRENT | 0x0008 | $B%G%P%$%9$,2aEEN.>uBV$K$"$k>l9g!J(Bbus-powered hub$B$,#2$DO"B3$G@\B3$5$l$?>l9g$O%[%9%H$+$i1s$$B&$N(Bhub$B$K@_Dj$5$l$k!K(B
|
PS_PORT_RESET | 0x0010 | $B%G%P%$%9$O%j%;%C%H$r9T$C$F$$$k!JDL>o!"$3$NCM$,@_Dj$5$l$k$3$H$O$J$$!K(B |
PS_PORT_POWER | 0x0100 | device$B$KBP$7$FEE8;$,6!5k$5$l$F$$$k>l9g$K@_Dj$5$l$k!JDL>o$O$3$NCM$,@_Dj$5$l$F$$$k$,!"%O%V$b$7$/$O%G%P%$%9$K2?$i$+$N0[>o$,5/$3$C$F$$$k>l9g$O@_Dj$5$l$F$$$J$$$3$H$,$"$k!K(B |
PS_PORT_LOW_SPEED | 0x0200 | low speed device$B!J%-!<%\!<%I$d%^%&%9Ey$,5s$2$i$l$k!K$,@\B3$5$l$?>l9g$K@_Dj$5$l$k(B |
$B!Z%(%i!<%3!<%I![(B
USB_ERR_NOMEM | report$B$r3JG<$9$k$@$1$NNN0h$,3NJ]$5$l$F$$$J$$(B |
$BK\9`L\$G$O!"(BUSB$B%^%M!<%8%c%7%9%F%`%3!<%k$N@bL@(B$B$G(B
USB_ERR_IO_*
$B$N$h$&$K=q$+$l$F$$$k%(%i!<(B
$B!J(BUSB$B%G%P%$%9$H$NDL?.Cf$KH/@8$9$k%(%i!
USB_ERR_IO_NAK
-
$B%G%P%$%9$+$i$N(BNAK$B1~Ez$,0lDj;~4V!J(B10$BIC!K0J>eB3$$$?>l9g$KH/@8$9$k!#(B
$B$?$@$7!"%$%s%?%i%W%HE>Aw$r;HMQ$9$k%Q%$%W$G$O$3$N%(%i!<$OH/@8$7$J$$!#(B
USB_ERR_IO_SHORT
-
usbOpenPipe()
$B$G(BUSB_SHORTOK$B$r;XDj$7$J$$>uBV$G(B
usbIoPipe()
$B$G%G!<%?$r$d$jl9g$K(B
$BH/@8$9$k!#(B
USB_ERR_IO_BABBLE
-
$B%P%V%k(B(babble)$B$,H/@8$7$?>l9g$K$3$N%(%i!<%3!<%I$,JV$5$l$k!#(B
USB_ERR_IO_CRC
-
CRC$B%(%i!<$,H/@8$7$?>l9g$K$3$N%(%i!<%3!<%I$,JV$5$l$k!#(B
USB_ERR_IO_BITSTUFF
-
$B%S%C%H%9%?%C%U(B(bit stuff)$B%(%i!<$,H/@8$7$?>l9g$K(B
$B$3$N%(%i!<%3!<%I$,JV$5$l$k!#(B
USB_ERR_IO_BABBLE, USB_ERR_IO_CRC, USB_ERR_IO_BITSTUFF
$B$,(B
$BIQHK$KH/@8$9$k>l9g!"(BUSB$B%G%P%$%9$KLdBj$,$"$k2DG=@-$,9M$($i$l$k!#(B
USB_ERR_IO_BUFERR
-
USB$B%[%9%H%3%s%H%m!<%i$H%a%$%s%a%b%j$H$N4V$NE>Aw$G(B
$BLdBj$,H/@8$7$?>l9g$K5/$3$k%(%i!<$G$"$k!#(B
$BDL>o$OH/@8$7$J$$$,!"(B
$B%[%9%H%3%s%H%m!<%i$N
USB_ERR_IO_NORESP
-
$B%G%P%$%9$,2r=|$5$l$F$+$i(BUSB$B%^%M!<%8%c$,%G%P%$%9$N2r=|$r8!CN$9$k(B
$B$^$G$N4V$K$OB?>/$N%?%$%`%i%0$,$"$j!"$=$N4V$K%G%P%$%9$KBP$7$F(B
$BDL?.$r9T$C$?:]$KH/@8$9$k%(%i!<$G$"$k!#(B
$B$3$N%(%i!<$,H/@8$7$?>l9g!"$=$l0J9_$O%G%P%$%9$KBP$9$kA`:n$r(B
$B9T$&$N$rHr$1$k$Y$-$G$"$k!#(B
$B$3$N>O$NL\
$BA0JG(B:$BBh(B14$B>O(B $B%M%C%H%o!<%/%G%P%$%9$K$b$I$k(B