본문 바로가기

programming

WINDOW Driver 개발과정 Windows상에서 드라이버를 개발하는 방법을 알아보자. 다음과 같은 순서로 driver개발에 필요한 내용들을 살펴 보겠다. 1. 드라이버 개발을 위해 필요한 요소들 2. 드라이버 개발전에 고려할것들 3. 디버깅 과정 1) 컴파일러(compiler) 2) 링커(linker) 3) 에디터(Editor) 4) 헤더파일 및 라이브러리 4) 예제 및 기본 골격(Skeleton) 5) 디버거(Debugger) 등의 요소들이 드라이버를 개발하는있어서 필요한 기본적인 요소들이 된다. 이들은 각각 다음[표1-1 구성요소]와 같은 곳에서 구할수 있고 이를 기본으로 해서 드라이버를 개발하게 된다. OS Win9x WinNT4.0 Win2000 XP 비고 Compiler VC++ VC++ VC++ VC++ or DDK Li.. 더보기
윈도우 드라이버 (WDM이 궁금해서..) 디바이스 드라이버는 로드 가능한(loadable) 커널 모듈들로서 I/O를 담당하는 O/S의 모듈(즉, I/O Manager)과 주변 하드웨어(H/W) 사이에 인터페이스를 책임진다. O/S 또는 CPU가 제공하는 보호 모드 규정에 맞게 Resource를 Access를 해야한다. User Application은 IO port를 직접 Access 할 수 없으며, Memory 영역도 제한 적으로 2G(0x7FFFFFF) 이하의 영역만을 사용해야 한다. int val = _inp(0x61); val |= 3; _outp(0x61, val); // 보호모드 규정 위반 char *p; p = (char *) 0x90000000; *p = ‘a’; // 보호모드 규정 위반 디바이스 드라이버는 O/S 종속적이므로 먼저.. 더보기
MFC List 클래스 [리스트 클래스] p.351~ 클래스 데이터 형식 CstringList CString CptrList void * CObList CObject * → CString 형과 같이 직접 지원되는 경우는 CStrinList에 저장하고, 그렇지 않으면 CptrList 클래스에 저장하면 된다. 함수 기능 GetCount 리스트에 저장된 항목의 개수를 반환 IsEmpty 리스트에 저장된 항목이 없으면 TRUE 반환 GetHead 첫 노드의 값을 반환 GetTail 마지막 노드의 값을 반환 GetHeadPosition 첫 노드의 포인터를 반환 GetTailPosition 마지막 노드의 포인터를 반환 GetAt 주어진 포인터가 가리키는 값을 반환 GetNext 주어진 포인터가 가리키는 값을 반환하고, 포인터는 다음 노드.. 더보기