일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 드라이버
- 패키지
- ssh
- ubuntu
- QT
- docker registry
- docker container
- port
- docker
- Openswan
- 우분투
- Linux
- docker-compose
- golang
- 방화벽체크
- VMware
- sudo
- 도커
- VPN
- VIM
- DevOps
- driver
- 루비
- window size
- opsworks
- AWS
- Chef
- 리눅스
- RUBY
- ssh command
- Today
- Total
목록카테고리 (128)
구리의 창고
이 부분이 뭔고하니.. Class=USB 라고 했으면 USB에 맞는 classguid 를 적어줘야한다 이거는 소스안에 적는 guid랑 다른것이다!! 1394 Host Bus ControllerClass = 1394 ClassGuid = {6bdd1fc1-810f-11d0-bec7-08002be2092f}This class includes system-supplied drivers of 1394 host controllers connected on a PCI bus, but not drivers of 1394 peripherals. Battery DevicesClass = Battery ClassGuid = {72631e54-78a4-11d0-bcf7-00aa00b7b32a}This class includ..
1. DriverEntry -콜백함수를 등록해준다. 쓰지 않는 함수는 default handler를 만들어 처리해준다. 2. AddDevice -드라이버를 초기화한다. 여기서 보통 이루어지는 함수를 대략적으로 나열해보겠다. (guid를 사용 할 경우이다) IoCreateDevice() -> IoRegisterDeviceInterface() -> IoSetDeviceInterfaceState() 3. IRP_MN_START_DEVICE (PNP) -AddDevice가 호출된 후에 불려진다. AddDevice()가 드라이버를 초기화 했다면, 실제 디바이스를 설정하고 초기화 한다. 4. IRP_MN_QUERY_CAPABILITIES (PNP) -그 다음 호출되는 함수이다. 계속 추가..
http://www.driveronline.org/ 에 있는 스켈레톤PNP를 기초로 만들었다 드라이버와 어플리케이션이 IOCTL까지 할 수 있도록 만든 예제이다. 허접하지만 도움이되는 사람이 있음좋겠다 USB 붙이다가 삭제하고 만든거라 에러날지도 모르겠으나 수정 할 수 있을 정도이다.
MSC_VER 는 vs c++ 컴파일러 버전을 나타내는 상수이다. 버전별 값 1000 : Visual C++ 4.x 1100 : Visual C++ 5 1200 : Visual C++ 6 1300 : Visual C++ NET 1310 : Visual C++ NET 2003 1400 : Visual C++ NET 2005 1500 : Visual C++ NET 2008 사용법) #if _MSC_VER == 1500 //code #else if _MSC_VER = 1400 //code #endif
1. application이 driver 에게 버전 요청 winioctl.h 에 정의된 함수인 DeviceIoControl()를 사용한다. 사용 예시는 아래와 같다. DWORD dwRet; ULONG Version; DeviceIoControl( hDevice, IOCTL_CMD_VERSION, &Version, sizeof(ULONG), &Version, sizeof(ULONG), &dwRet, NULL ); 2. driver는 ioctl 이벤트가 일어나면 이를 감지하고 적절한 case 문으로 이벤트를 처리한다 그럼 드라이버에서는 irp stack에 뭐가 왔나 체크를한다. PIO_STACK_LOCATIONirpStack ; ULONG outputBufferLength; irpStack= IoGetCur..
#include 를 먼저 포함시켜준다..
헤더파일 상단에 #pragma once 라고 써준다.. 중복정의가 안되도록..
얼마나 쓸런지