본문 바로가기

전체 글

(357)
[Windows/WDM] 드라이버 스택 코드 이해 ※제가 공부하면서 정리용으로 쓰는것이기 때문이 틀릴 가능성이 다분히 있습니다. 혹시 잘못된점이 있다면 댓글로 알려주세요 (아마 잘못된 부분이 많을 것으로 예상 됩니다.) 드라이버 스택을 이애하기 위해선 PDO, FDO, FIDO가 무엇인지 필수적으로 알아야한다. PDO(Physical Device Object)특정 디바이스에 attach된 디바이스들에 대한 열거 및 관리를 하는 Driver가 사용하는 device object 라고 말 할수 있다. 즉 만드는 디바이스에 대한 설명하는 드라이버이다.[출처] Device Stack(디바이스 스택)에 대한 간략한 정리|작성자 린트이 PDO는 디바이스 드라이버 개발자가 직접 만드는것이 아닌 드라이버 개발자가 만들 디바이스의 상위 디바이가 개발자가 만드는 디바이스에..
[Windows/WDM] 드라이버 WDM(Windows Driver Model)예전의 windows, 95와 NT에선 드라이버 개발 방법이 완전히 달랐다. 그래서 차기작인 98과 2000에선 이러한 부분을 해결 할려고 했었고 그러기 위해서 NT의 기존 커널 드라이버에 '플러스앤플레이' 그능과 '전원 관리 기능'을추가하여 새롭게 만든 규격이 WDM이다. MMU(Memory Management Unit)물리 메모리와 가상 메모리의 변환 테이블이다. 즉 컴퓨터의 실제 메모리 주소를 물리 메모리 영역이라고 한다면 우리가 사용하는 메모리 주소를 가상 메모리 주소라고 할 수 있다.MMU 주소 변환 테이블· 가상 주소와 실제 주소가 대응하는 표를 가지고 있음.· 지정된 주소가 표에 지정된 범위인지 조사한다.· 범위 외라면 부정 접근 예외를 발생 시킨..
[Windows/WDM] IRP란 윈도우 프로그래밍은 일반 콘솔 프로그램과 다르게 메세지 구동 방식이다. 즉 콘솔 프로그램이 함수들이 순차적으로 진행이 된다면, 윈도우 프로그램은 사용자가 특정한 작업을 하게되면 그에 해당하는 윈도우 메세지가 발생하고 그러한 메세지를 현재 활성화 되어있는 프로그램의 메세지 큐에 집어 넣게된다. 그러면 크로그램은 메시지 큐에서 메세지를 가져와서 그에 해당하는 작업을 한다. 이처럼 드라이버 역시 이와 비슷하게 작동을 하는데 드라이버는 로딩이 성공적으로 이루어지면 할당된 메모리에 대기하고 있다가 자신이 컨트롤하고 있는 디바이스에 특정한 요청이 왔을 때 윈도우에서 보내주는 특정 요청 정보를 토대로 적절한 동작을 처리한다. 이 때 윈도우 프로그램이 특정 메세지를 처리하기 위해 해당 메세지 값과 그에 관련된 정보들이..
[C++/COCOS] cocos2d-x 클래스 CCCode Class : 최상위 클래스 Cocos2d-x의 모든 클래스들은 CCNode class를 상속 받는다. 특징 :- 다양한 프로퍼티 : 위치, 생상, 투명도, 크기, 회전, 가시성 여부 , 카메라, 그리드, 등등....이 있고 필요에 따라 변경이 가능 - 자식 노드를 가질수 있음 : CCNode는 다른 노드에 대해 컨테이너커럼 사용 가능 (객체들의 계층 구조를 만들 필요가 있을때 용이 - 자제 스케줄러 : 게임 루프를 만들때 사용, 중지, 재시작 기능도 제공 - 스프라이트. 레이블, 메뉴, 레이어, 장면, 등 과 같은 주요 cocos2d-x class 모드 CCNOde class를 상속함 CCDirector : 싱글톤 클래스 특징 : 하나의 애플리케이션에 하나의 인스턴스만 존재가능, cocos..
[C++] 참조자 참조자 C언어에서는 하나의 메모리 공간에 하나의 이름을 지정하여 사용하였지만 C++에선 이러한 이름을 여러개 저 정하여 사용할 수 있다. int num1 = 10;int &num2 = num1; 처럼 사용하면 num1의 메모리를 사용할때에 num2을 이용하여서도 메모리 접근을 할 수 있다.보면 &연산자를 이용하여 사용하고 있는데 주의해서 보아야 할 점은 &연산자의 위치이다.보통 &연산자를 포인터를 사용할때 많이 사용하지만 그것과 위치가 반대인것을 주의해서 보아야한다. 그리고 아래와 같이도 사용이 가능하다. int num1 = 10;int &num2 = num1;int &num3 = num2;int &num4 = num1; 이처럼 사용해도 num1의 하나의 메모리에 이름을 여러가지로 사용가능하다. ※불가능..
[Info] 프로그래밍 언어 ●프로그래밍 언어- 프로그래밍 언어의 필요성우리 사람들이 서로 의사교환을 할때 언어가 사용된다. 이처럼 사람과 컴퓨터 사이에 서로 의사교환을 하기 위해서 만든것이 프로그래밍 언어이다. 프로그래밍 언어는 사라밍 컴퓨터에세 지시할 명령어를 기술하기 위해 만들어진 언어이다.▶ 저급언어 - 기계어기계어란 컴퓨터에게 지시할 명령을 직접적으로 표현한 언어이다. 0과1로 표현되는 언어로서 컴퓨터가 직접 이해할 수 있는 유일한 언어이다.기계어는 연산 코드(Operation Code)와 피연산자(Oparand)로 구성된다. 연산 코드는 메모리나 레지스터에 데이터를 저장 하서나 산술연산 등을 수행하는 연산자에 해당하는 코드이며 피연산자는 메모리 주소나 레지스터 번호 등을 나타낸다. 또한 기계어의 경우에는 컴퓨터 하드웨어에..
[C언어] C 언어 포멧 문자, 특수 문자, 입출력 스트림 ※ 포맷 문자의 종류 ▶ %c : 문자 상수(글자)로 출력▶ %d : 10진수 형태의 정수로 출력▶ %ld : 10진수 형태의 long형 정수로 출력▶ %u : 부호없는 10진수 형태로 출력▶ %lu : 부호없는 10진후 형태의 long형 정수로 출력▶ %e : float나 double의 실수 형태의 지수 표시법으로 출력▶ %f : float나 double의 실수 형태로 출력▶ %g : %e나 %f의 형식 중에서 출력 글자수가 적은 쪽으로 출력▶ %o : 8진수 형태의 정수로 출력▶ %s : 문자열 형태로 출력▶ %x : 16진법 형태 정수로 출력 ▶ %% : %문자 그 자체를 출력 ※ 특수 문자▶ \a : 경고 벨소리 ▶ \b : 백 스페티스▶ \n : 줄 바꿈▶ \r : 캐리지 리턴(현재 줄의 첫번째..
[JAVA] 출력 스트림 ( OutputStream ) ■ 출력 스트림 ( OutputStream )출력 스트림은 입력 스트림과 짝을 이룬다.InputSream ↔ OutputStreamFileInputSream ↔ FileOutputStreamOutputStream 의 대표적인 메소드 두가지가 있다.- public abstract void write(int b) throw IOException- public void close() throw IOExceptionwrite 메소드가 abstract로 선언되어 있는 이유는 InputStream과 같은 이유다. 그리고 close 메소드는 출력 스트림의 소멸에 사용된다. 사용의 예를 간단히 들어 보겠다.OutputStream out = new FileOutputStream(output.bin);out.write(b..