본문 바로가기

분류 전체보기423

DeviceIoControl 버퍼 사용법 DeviceIoControl 사용시 버퍼 방식에 따른 버퍼 접근에 대한 정리이다. METHOD_BUFFERED Input과 Output 버퍼 모두 AssociatedIrp.SystemBuffer를 사용한다. 이때 버퍼의 사이즈는 사용자의 Input과 Output 버퍼사이즈의 최대 사이즈이다. Input과 Output 모두 같은 메모리를 사용하기 때문에 버퍼를 사용할때 Input 버퍼를 먼저 읽고 Output버퍼에 써야 한다. (안그럼 덮어 써진다.) METHOD_IN_DIRECT, METHOED_OUT_DIRECT Input Data는 Irp->AssoicatedIrp.SystemBuffer로 표현된다. Output Data는 MDL로 표현되며 Irp->MdlAddress에 들어간다. 읽기나 쓰기 버퍼의.. 2020. 1. 7.
드라이버와 통신하기 IRP_MJ_DEVICE_CONTROL 드라이버와 통신하기 IRP_MJ_DEVICE_CONTROL 장치 드라이버는 I/O Manager로 부터 File Object로 취급되며 File Operation을 수행 할 수 있다고 하였다. User Application에서 Create, Read, Write, Close Operation를 통해 드라이버와 통신 할 수 있다. 하지만 장치가 쓰기, 읽기 작업만 하지 않을 것 이다. 장치가 동작하는데 다양한 기능들을 수행하기 위해서는 이보다 더 많은 명령이 있어야 할 것이다. 때문에 I/O Control Code를 통해 다양한 명령을 정의하고 수행 할 수 있다. MSDN에 의하면 I/O Control 코드는 User Application과 드라이버간 통신을 가능하게 해준다. 또한 드라이버 사이에 통신을 .. 2020. 1. 7.
아반떼AD 에어컨 필터 교체 방법 - 3M Filtrete PM2.5 활성탄 필터 차를 구입한지 1년이 되었다. 지난 여름이 시작되기전 에어컨 필터를 한번 갈았는데 이제 거의 6개월이 되어 교체주기가 되었다. 구입한 필터는 저번과 동일한 3M의 활성탄 에어컨 필터. 활성탄 성분과 함께 PM 2.5의 미세먼지까지 잡을 수 있다고 한다. 초미세먼지(PM 2.5)란? 미세먼지보다 작은 2.5마이크로미터 이하의 물질로 발암 물질이 포함된 유기성 물질, 이온 등으로 구성되어 있어 단시간만 노출되더라도 기도에서 걸러지지 못하고 폐포까지 침투해 호흡기 질병을 이르키는 원인이 됩니다. 필터 교체 주기는 6개월에 한번씩 교체해 주는것이 좋다고 한다. 필터는 활성탄성분 때문에 짙은 회색을 띈다. 측면에는 공기의 흐름 방향이 화살표로 되어있어 방향을 맞추기 편하다. 교체방법은 현대기아차 답게 매우 쉽다... 2020. 1. 4.
Zw함수의 접두사의 의미는? Zw함수의 접두사의 의미는? Kernel 모드 드라이버를 개발하다보면 Zw가 붙은 함수들을 호출 하게 된다. Kernel 모드 함수들의 접두어는 Zw 이외에도 여러가지 접두어들이 있다. 그 예는 아래와 같다. 접두사 커널 구성요소 루틴 예 Cm Configuration manager CmRegisterCallbackEx Ex Executive ExAllocatePool Hal Hardware abstraction layer HalGetAdapter Io I/O manager IoAllocateIrp Ke Kernel core KeSetEvent Mm Memory manager MmUnlockPages Ob Object manager ObReferenceObject Po Power manager PoSet.. 2020. 1. 3.
커널드라이버 Buffered I/O 처리 하기 (MFC, CFile) 드라이버에서 I/O처리 하기 드라이버는 File Object와 매칭되며 File I/O operation을 처리 할 수 있다고 했다. 정말 그렇다면 WriteFile, ReadFile함수를 통해 드라이버에 접근이 가능해야한다. 실제로 그런가?를 확인하기 위해 MFC의 CFile 클래스를 통해 접근해 보았다. CFile 클래스는 MFC에서 File에 대한 추상화 클래스이며 CreateFile,WriteFile, ReadFile등 파일 Operation을 수행 할 수 있다. 또한 예외처리도 되어있어 Win32 api를 통한 파일 접근 보다 좀 더 간편하다. IRP 처리 IRP는 I/O Request Packet의 약자로 I/O Manager에서 IRP라는 Packet통해 Device에게 I/O요청을 하게 된.. 2020. 1. 3.
나성동 맛집 - 구의 정원 프리미엄 닭요리 전문 오늘 저녁은 나성동 구의 정원이라는 프리미엄 닭요리 전문점에 가보았다. 평소에는 사람이 꽉차있어 들어가기 그랫지만 오늘은 사람이 없어 들어가 볼 수 있었다. 구의 정원은 오리, 닭요리를 전문으로 하는 음식점이다. 닭백숙, 오리고기, 오리구이 등을 먹을 수 있다. 들어서자마자 약간 한방약재와 같은 냄새가 풍겼다. 아마 백숙의 재료로 넣은 것들의 냄새 같다. 보통의 닭백숙요리집과는 다른 인테리어를.. 인테리어는 마치 파스타집, 카페와 같다. 메뉴판에는 다양한 음식들이 있었지만 생오리 양념 불고기 2인분을 시켰다. 기본 상차림은 김치, 쌈장, 깻잎, 상추 등과 계란찜이 나왔다. 계란찜의 맛이 나쁘지 않았다. 오리고기 2인분이 나왔다. 너무 맵지도 않은 양념이 오리고기를 맛있게 만들어주었다. 오리고기를 어느정도.. 2020. 1. 1.
나성동 맛집 - 장수설렁탕 어제 저녁을 먹은 곳은 나성동의 장수설렁탕이다. 날씨가 많이 추운날이니 뜨끈한 국밥이 생각이 났다. 항상 그냥 지나쳤지만 오늘은 가보기로 하였다. 항상 지나가면서 보았지만 사람이 많진 않았는데 어제도 마찬가지였다. 가게 내부로 들어서니 간간히 손님들이 들어왔고, 배달도 많이 나가는 듯하였다. 설렁탕도 배달해먹는 시대입니다. 배달의 민족이.. 우리는 설렁탕과 갈비탕을 시켜보았다. 설렁탕은 9000원, 갈비탕은 11000원이다. 설렁탕에는 소면이 들어가있고 약간의 고기가 들어있다. 다음 메뉴는 갈비탕. 갈비탕에는 버섯도 들어가고, 대추도 들어가고, 맛은 닭 육수 맛도 나는듯? 왕갈비탕은아니라서 왕갈비 같은건 없고 그냥 갈비가 소량 들어있다. 맛은 크게 나쁘지 않으므로 .. 나성동에서 국밥한그릇 할 때 좋을 .. 2020. 1. 1.
대천 해수욕장 맛집 - 국본가 수육국밥 2019년 마지막날 12월 31일, 드라이브 삼아 대천 바다를 보러 오전에 출발하여 12시쯤 도착하였다. 원래는 거제도를 가려했으나 추운날씨와 당일치기는 어려울 것 같은 판단에 가까운 바다인 대천을 선택했었다. 대천은 세종에서 직진만 1시한 반 정도 하면 갈 수 있으며 국도도 차도 별로 없고 가는길도 도로가 잘 포장되어있어 달리기 좋다. (하지만 과속카메라가 많다.) 바다를 구경하려 하였지만 너무 날씨가 추워 가까운 카페로 들어가버렸다. 이럴려고 바다를 보러왔나 자괴감이 들었지만 추운 날씨에 따뜻한 커피를 바다를 보며 먹는 것도 나쁘지는 않았다. 점심때가 되었으니 밥을 먹을 때이다. 하지만 주변 가게들은 조게구이, 조게찜, 해물탕... 해물을 싫어하고 조게를 싫어하기 때문에 스킵스킵 게다가 가격도 조게구.. 2020. 1. 1.
장치 드라이버와 커널 오브젝트 (Device Driver & Kernel Object) Kernel Object(커널 오브젝트) Windows OS가 구동되는데 많은 요소들이 존재한다. 프로세스가 실행되고, 레지스트리의 값을 읽고, 쓰고, 쓰레드가 생성되고, 파일에 접근한다. 이 모든 리소스들은 Kernel에서는 Kernel Object로 관리된다. Windows의 Kernel Object는 크게 25가지 이상의 유형으로 나뉜다. https://docs.microsoft.com/ko-kr/windows-hardware/drivers/kernel/windows-kernel-mode-object-manager Kernel Object Manager Windows NT Kernel 내부에는 Kernel Object를 관리하는 역할을 하는 것이 있는데 이것을 Kernel Object Manager.. 2019. 12. 30.