Noenemy's Code Foolosophy
WP7 개발 관련 자료 모음
WP7 개발시에 필요한 개발 도구들입니다. 먼저 Visual Studio 2010 Express 버전 및 Silverlight, XNA 4.0, 그리고 WP7...
Date: 04/02/2010
Windows Phone 7 App 개발 개요
지난 3월에 Las Vegas에서 있었던 MIX10 컨퍼런스(https://live.visitmix.com/)에서 화두는 그동안 베일에 가려져 있던 Windows Phone 7에...
Date: 04/01/2010
Zune HD 개발환경 구축하기
Zune HD는 애플 IPod touch에 대항하기 위해서 2009년 가을에 출시된 마이크로소프트의 full touch multi media player 입니다. XNA game...
Date: 02/03/2010
Windows policy에서 사용하는 registry 항목
그룹 정책 편집기(Gpedit.msc)를 이용하면 컴퓨터와 사용자의 작업 환경에 대한 여러가지 설정이 가능합니다. 예를 들면 패스워드의 길이나 복잡도, 변경 주기 같은 내용을...
Date: 02/02/2010
XNA 개발 프레임워크
XNA는 XBOX와 Windows용 게임 애플리케이션을 .net 기반으로 통합해서 개발할 수 있도록 제공되는 framework 입니다. 2008년 10월에...
Date: 01/03/2010
Thread Scheduling 유형
Windows 운영체제는 thread라는 최소 실행단위에 의해서 프로그램이 실행되는데, 여러 개의 thread가 각각 교대로 CPU에 의해서 매우 빠른 속도로...
Date: 12/07/2009
Win7의 부팅속도 향상
지난 주 전 세계적으로 Windows 7이 정식 출시됨에 따라 기존의 Windows Vista 출시와는 달리 시장에서 좋은 평가를 받고 있고, IT 전반적으로 큰 이슈가 되고 있는...
Date: 11/04/2009
Windows 7의 바탕화면 슬라이드쇼
Windows 7에서 사용자 UI 관련해서 많은 부분들이 개선되거나 추가 되었는데, 그 중에 하나가 바탕화면 이미지가 일정 시간 단위로 계속 변경되는 슬라이드 쇼 기능입니다....
Date: 10/29/2009
OS Kernel 함수들의 Prefix
이전에도 소개 드린 바 있지만 Windows 운영체제의 커널은 여러 구성요소로 구성되어 있습니다. 그러다 보니 내부를 구성하는 함수의 종류도 많고 그 양도 많습니다. 운영체제를...
Date: 10/14/2009
DriverEntry 함수
C 언어를 이용해서 프로그램을 개발해 본 분이 있다면 main() 함수가 entry function의 역할을 한다는 것을 알고 있을 것입니다. 작성한 응용 프로그램이 실행된 후에...
Date: 09/11/2009
Virtual PC를 이용한 Kernel debugging
WinDbg를 이용해서 Kenel debugging을 하려면 디버깅 대상이 되는 Target machine과 이를 디버깅 및 컨트롤 하는 Host machine, 그리고 이 두...
Date: 09/08/2009
Device Stack와 Driver loading 순서
지난 번에 설명한 바 있지만 device driver에는 여러 종류가 있습니다. 이를 크게 분류하면 다음과 같습니다. Bus driver - 특정 bus에 attach된...
Date: 09/07/2009
PnP device의 인식 과정
Pnp(Plug and Play)를 지원하는 device는 내가 어떠한 device인지를 bus 측에 전달하도록 구성되어 있습니다. 운영체제에서는 이를 이용해서 새로 시스템에...
Date: 09/07/2009
Wow64 - Registry Redirection
앞서 64bit 플랫폼에서 32bit용으로 개발된 기존 어플리케이션이 실행될 수 있도록 해주는 Wow64에 대해서 알아본 바 있습니다. 이번에는 그 세부 내용으로 Registry...
Date: 09/01/2009
Wow64에 대해서
예전에는 서버용 운영체제에서만 사용되던 64bit 컴퓨팅 환경이 최근에는 CPU 기술의 발달로 개인용 컴퓨터에도 보편화된 추세입니다. 32bit 환경에서는 Intel사가 독보적인...
Date: 09/01/2009
Symbol file에 대해서
디버깅을 할 때 가장 우선적으로 필요한 것이 디버깅 대상이 되는 모듈들의 심볼 파일입니다. 리버싱이나 어셈블리에 익숙하다면 굳이 심볼이 없어도 물론 분석이 가능하겠지만 많은 노력과...
Date: 08/05/2009
JavaScript로 클래스 구현하기?
안녕하세요. 최근에 Windows Sidebar Gadget 관련해서 테스트 프로그램을 작성하느라 오랜만에 웹 프로그래밍을 해보게 되었습니다. 일반적으로 웹 프로그래밍이 클라이언트...
Date: 06/16/2009
Windows Sidebar Gadget 만들기 #3 - Settings
지난 시간에는 Gadget의 Flyout 기능을 구현하고, Gadget과 Flyout 간에 서로 연동하는 방법에 대해서 간단히 살펴 보았습니다. 이번에는 Gadget의 실행에...
Date: 06/01/2009
주요 System Process들
Windows 운영체제를 구성하는 여러 구성요소들 중에 Windows System과 관련된 Process들이 있습니다. 이들 System Process는 부팅 이후 초기 과정에서...
Date: 05/28/2009
Windows Sidebar Gadget 만들기 #2 - Flyout
지난 시간에 만들었던 Hello Gadget 예제에 Flyout 기능을 추가해보도록 하겠습니다. Flyout이란 원래 있는 Gadget 으로부터 숨겨져 있던 페이지가 좌우로...
Date: 05/28/2009
Windows Sidebar Gadget 만들기 #1
컴퓨터를 이용해서 영화를 많이 보기 때문인지 와이드 스크린을 가진 디스플레이 장치가 보편화 되고 있습니다. 전통적인 4:3 비율의 화면 크기에 익숙한 사람들은 16:9 비율의...
Date: 05/26/2009
Remote Session인지 확인하는 방법
Windows 운영체제는 기존에는 개인 사용자용 PC의 운영체제로 주로 사용 되었으나 Windows NT 4.0 Server의 Option Pack에 IIS가 추가되면서 HTTP나...
Date: 05/22/2009
Kernel Mode vs. User Mode
오늘은 아주 원론적인 얘기이지만 운영체제를 이해하는 데 있어서 가장 기본이 되는 Kernel Mode와 User Mode에 대해서 알아볼까 합니다. 특히 Windows...
Date: 05/21/2009
LiveKD
WinDbg tool을 이용해서 커널 디버깅을 하려면 target machine을 host machine과 1394나 COM port를 이용해서 연결을 해야 합니다. 최근에는 제약...
Date: 05/15/2009
TIB와 IsDebuggerPresent
Win32 API 중에 IsDebuggerPresent()라는 함수가 제공되는데 이는 현재 실행 중인 프로세스에 디버거가 붙은 있는지, 즉 현재 디버거에 의해서 디버깅 되고...
Date: 05/13/2009
데이터 실행 방지(DEP)
Windows XP SP2와 Windows 2003 SP1이 릴리즈 될 때 새로 추가된 큰 기능 중에 하나가 바로 데이터 실행 방지(DEP: Data Execution...
Date: 05/11/2009
응답 없음(Not Responding)
가끔 Windows 운영체제를 사용하다보면 특정 애플리케이션이 아무런 반응을 보이지 않고 실행이 멈춘 듯한 모습을 볼 수 있습니다. 해당 어플리케이션의 타이틀바에는 '(응답...
Date: 05/10/2009
I/O Stack Locations
일반적으로 함수가 호출될 때마다 ESP, EBP 레지스터 정보와 함께 thread stack를 이용해서 함수에 전달되어야 하는 파라미터 정보와 함수 실행이 끝난 뒤에 리턴되어야...
Date: 05/04/2009
PEVIEWER로 살펴보는 notepad.exe
PE(Portable Executable) format이란 Win32, Win9x, W2K, WinNT 등 Windows 계열 플랫폼에서 실행파일을 위해 설계된 파일 포맷입니다....
Date: 04/30/2009
Example I/O request - an overview
WDK 문서 중에서 I/O Request의 전체 과정을 설명하고 있는 문서가 있어서 이를 번역해 보았습니다. 번역하면서 느낀 것은 역시 기술 문서는 원어 그대로 읽고 이해하는 것이...
Date: 04/20/2009
On-demand 메모리 관리
오늘은 Windows 운영체제의 메모리 관리 방법에 대한 일반적인 얘기를 조금 나눠볼까 합니다. 이미 많은 분들이 아시다시피 x86 기반의 Windows에서는 각 프로세스별로...
Date: 04/02/2009
Thread States
현재 운영체제를 사용하면서 여러 가지 응용 프로그램을 동시에 사용하고 있습니다. 문서 작성을 하면서 음악을 듣고 인터넷 서핑을 동시에 진행할 수 있습니다. 하지만 CPU에서는 원래...
Date: 03/27/2009
Windbg Stack Backtracing 명령어
thread별로 로컬 변수나 함수 호출간에 전달할 파라미터 정보를 저장하기 위한 임시 공간으로서 thread stack을 사용할 수 있는데, thread의 특정 시점에 사용 중이던...
Date: 03/27/2009
Intel CPU Registers
CPU에서 어떤 명령이 실행되기 위해서는 메모리에 있는 내용이 CPU로 전달되어야 하는데, CPU와 메모리 사이에 데이터가 매번 전송되는 것이 성능상에 문제가 될 수 있기 때문에...
Date: 03/20/2009
Windbg Remote debugging 설정 방법
오늘은 WinDbg를 이용해서 remote debugging을 하는 방법을 알아보려 합니다. 원격지의 WinDbg 프로그램을 서로 Server, Client 처럼 TCP/IP나...
Date: 03/20/2009
Windows Error Reporting(WER)이란
오늘은 흔히 WER이라고 불리우는 Windows Error Reporting에 대해서 알아보도록 하겠습니다. Windows XP 이후로 시스템이 비정상 종료된 이후에 다시 부팅을...
Date: 02/25/2009
강제로 덤프파일 수집하기
Kernel mode에서 처리할 수 없는 exception이 발생하는 경우 흔히 우리가 블루스크린이라고 말하는 BSOD(Blue Screen Of Death) 화면을 볼 수...
Date: 02/19/2009
강제로 덤프 파일 수집하기
Kernel mode에서 처리할 수 없는 exception이 발생하는 경우 흔히 우리가 블루스크린이라고 말하는 BSOD(Blue Screen Of Death) 화면을 볼 수...
Date: 02/19/2009
Driver Verifier에 대해서
Kernel 영역에서 exception이 발생하여 이에 대해서 handling되지 못하는 경우에는 흔히 우리가 블루스크린이라고 부르는 BSOD(Blue Screen Of...
Date: 02/09/2009
Start!
안녕하세요. noenemy입니다. Microsoft 기술지원부에서 developer support engineer로서 근무하고 있는 noenemy라고 합니다. 이미 개인 블로그로...
Date: 10/29/2008