일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 패키지
- 드라이버
- docker
- RUBY
- golang
- docker container
- DevOps
- Chef
- QT
- driver
- AWS
- sudo
- VPN
- 도커
- docker-compose
- Linux
- Openswan
- ubuntu
- 루비
- 우분투
- ssh command
- 방화벽체크
- opsworks
- VIM
- 리눅스
- window size
- ssh
- port
- VMware
- docker registry
- Today
- Total
구리의 창고
URB 본문
typedef struct _URB {
struct _URB_HEADER {
union {
struct _URB_HEADER UrbHeader;
struct _URB_SELECT_INTERFACE UrbSelectInterface;
struct _RUB_SELECT_CONFIGURATION UrbSelectConfiguration;
//....
};
} URB, *PURB;
struct _URB_HEADER {
USHORT Length;
USHORT Function;
USBD_STATUS Status;
//...
};
URB 는 USB Request Block 의 약자로 USB와 통신을 하는데 쓰이는 하나의 구조이다.
URB 와 관련된 처리를 한 후에는 Status 필드를 받아온다.
아래는 URB의 Status 를 설명한다.
비트 이름 설명
00 USBD_SUCCESS 전송 성공
01 USBD_PENDING 진행중
10 USBD_ERROR 에러지만, stall 상태는 아님
11 USBD_ERROR/USBD_HALTED 에러이며 stall 되었음
01 USBD_PENDING 진행중
10 USBD_ERROR 에러지만, stall 상태는 아님
11 USBD_ERROR/USBD_HALTED 에러이며 stall 되었음
IOCTL을 하는데 있어서 주로 사용되는 함수는 IoBuildDeviceIoControlRequest() 이다.
USB Internal IOCTL 은 기본적인 IRP stack을 사용하지 않는다. 대신에 IrpStack 내에 Parameters.Others.Argument1 을 사용한다.
'Window Driver' 카테고리의 다른 글
Writing Windows WDM Device Drivers (CHRIS CANT) CD (0) | 2010.02.23 |
---|---|
USB 개념 (0) | 2010.02.18 |
USB 관련 헤더파일 (0) | 2010.02.18 |
USB 구조 (0) | 2010.02.18 |
IoCreateDevice() (0) | 2010.02.17 |
Comments