<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss version="2.0">
	<channel>
		<title>PYRASIS.COM 피라시스닷컴 블로그</title>
		<link>http://www.pyrasis.com/blog/</link>
		<description />
		<language>ko</language>
		<pubDate>Mon, 29 Jun 2009 08:52:52 +0900</pubDate>
		<generator>Tattertools 1.1.3 : Transition</generator>
		<image>
		<title>PYRASIS.COM 피라시스닷컴 블로그</title>
		<url>http://www.pyrasis.com/blog/attach/1/1159967737.gif</url>
		<link>http://www.pyrasis.com/blog/</link>
		<width>136</width>
		<height>30</height>
		<description />
		</image>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/pyrasis" type="application/rss+xml" /><item>
			<title>Subversion, Trac, CruiseControl.NET 컨설팅 및 기술지원</title>
			<link>http://www.pyrasis.com/blog/entry/SubversionTracCruiseControlNETConsulting</link>
			<description>안녕하세요. 윈도우 프로젝트 필수 유틸리티의 이재홍입니다.Subversion, Trac, CruiseControl.NET 구축과 운영에 관한 유료 컨설팅 및 기술지원을 해드립니다. 서버 구성 및 구축, 운영 방법 빌드 스크립트 작성 및 활용, 자동화 구축 가상머신 연동 고급 Subversion 활용 강의 트러블 슈팅 백업 및 복구 저장소 마이그레이션 (볼랜드 스타팀 등) 자동화 프로젝트 구성 교육&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/SubversionTracCruiseControlNETConsulting"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>코드와 소프트웨어</category>
			<category>CruiseControl.NET</category>
			<category>Subversion</category>
			<category>trac</category>
			<category>구축</category>
			<category>기술지원</category>
			<category>컨설팅</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/53</guid>
			<comments>http://www.pyrasis.com/blog/entry/SubversionTracCruiseControlNETConsulting#entry53comment</comments>
			<pubDate>Sun, 14 Jun 2009 22:42:18 +0900</pubDate>
		</item>
		<item>
			<title>VS2005 버그로 인한 재부팅 현상</title>
			<link>http://www.pyrasis.com/blog/entry/VisualStudio2005Bug</link>
			<description>VS2005의 버그 때문에 이 VS2005로 컴파일한 exe 파일만 실행해도 재부팅이 발생할 수 있습니다.그 조합은 Windows XP SP2, IE6(기타 보안패치를 설치하지 않은 상태)에 Visual Studio 2005 상세 버전 8.0.50727.42로 빌드한 exe 파일을 실행할때 입니다.문제는 exe 파일을 한번만 실행하면 괜찮은데, 2회에서 3회 반복 실행하면 재부팅이 발생합니다. (이것도 PC마다 다름)[CODE type=C] *** An Acce..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/VisualStudio2005Bug"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>코드와 소프트웨어</category>
			<category>KB926605</category>
			<category>KB932237</category>
			<category>VS2005 버그</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/52</guid>
			<comments>http://www.pyrasis.com/blog/entry/VisualStudio2005Bug#entry52comment</comments>
			<pubDate>Tue, 28 Apr 2009 16:06:42 +0900</pubDate>
		</item>
		<item>
			<title>윈도우 커널 모드(드라이버)용 SQLite</title>
			<link>http://www.pyrasis.com/blog/entry/ReleaseSQLiteForWindowsKernel</link>
			<description>SQLite는 아주 가벼운 데이터베이스 라이브러리입니다. SQL 문법을 사용할 수 있고 트랜잭션을 지원합니다.이번에 윈도우 커널 모드(드라이버)에서 사용할 수 있는 SQLite를 만들어봤습니다. 윈도우 드라이버에서도 데이터를 데이터베이스 형식으로 관리하고자 할 때 사용할 수 있습니다. 혹은 유저모드에서 만든 SQLite 데이터베이스 파일을 윈도우 드라이버에서 읽거나 쓸 때에도 사용할 수 있습니다.SQLite 버전은 3.6.12이며 WDK 6000 이..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/ReleaseSQLiteForWindowsKernel"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>코드와 소프트웨어</category>
			<category>Database</category>
			<category>SQL</category>
			<category>SQLite</category>
			<category>Windows Driver</category>
			<category>Windows Kernel</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/51</guid>
			<comments>http://www.pyrasis.com/blog/entry/ReleaseSQLiteForWindowsKernel#entry51comment</comments>
			<pubDate>Sat, 25 Apr 2009 13:33:37 +0900</pubDate>
		</item>
		<item>
			<title>SetupDiCallClassInstaller 함수가 동작하지 않을 때</title>
			<link>http://www.pyrasis.com/blog/entry/SetupDiCallClassInstallerAndWMDEVICECHANGE</link>
			<description>WDM 필터드라이버를 로드할 때 SetupDiCallClassInstaller 함수를 많이 사용합니다.이 함수는 장치 트리를 재구성 할 때 사용하는데, 필터 드라이버는 특정 디바이스에 필터값을 설정하고 장치 트리를 재구성하면서 드라이버를 로드하는 것입니다.여기서 SetupDiCallClassInstaller 함수가 동작하지 않을 때가 있습니다. 함수가 리턴하는 값이 TRUE 이면서 별다른 이상이 없는데도, 드라이버는 로드가 되지 않는 현상이 발생합니..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/SetupDiCallClassInstallerAndWMDEVICECHANGE"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>코드와 소프트웨어</category>
			<category>DBT_DEVNODES_CHANGED</category>
			<category>SetupDiCallClassInstaller</category>
			<category>WM_DEVICECHANGE</category>
			<category>필터 드라이버</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/49</guid>
			<comments>http://www.pyrasis.com/blog/entry/SetupDiCallClassInstallerAndWMDEVICECHANGE#entry49comment</comments>
			<pubDate>Wed, 01 Apr 2009 14:27:13 +0900</pubDate>
		</item>
		<item>
			<title>근황 2009년 3월</title>
			<link>http://www.pyrasis.com/blog/entry/RecentState200903</link>
			<description>2008년 5월 윈도우 프로젝트 필수 유틸리티 출간 이후 이렇다 할 활동을 하지 않고 있습니다. 책이 출간된 직후 부터 회사 생활에 있어 많은 변화가 있었고, 기술력에 더불어 조직문화의 차이가 성과에 큰 영향을 미친다는 것을 직접적으로 경험할 수 있었던 시기였습니다. 오래전 부터 조직문화, 기업문화에 대한 관심은 지속적으로 있어 왔지만 최근의 경험들을 통해 이러한 분야의 중요성을 느끼게 되었고, 좀더 전문적으로 다가갈 수 있는 계기가 되었습니다. 윈..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/RecentState200903"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>내 이야기</category>
			<category>근황</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/48</guid>
			<comments>http://www.pyrasis.com/blog/entry/RecentState200903#entry48comment</comments>
			<pubDate>Mon, 02 Mar 2009 00:22:23 +0900</pubDate>
		</item>
		<item>
			<title>일본전산(日本電産) 이야기</title>
			<link>http://www.pyrasis.com/blog/entry/Nidec</link>
			<description>처음에 우연히 이 책의 이름을 듣게 되었을 때 전산이라는 단어 때문에 일본 IT 업계 이야기인줄 알았습니다. 하지만 책을 사들고 한자로 된 회사명을 보고 난 뒤 전산이 전자계산이 아닌 전기산업이라는 것을 알게 되었습니다. 그렇습니다. 일본전산은 모터 제조회사입니다. 이 책의 초반부를 읽으면서 상당한 거부감을 느낀것이 사실입니다. 읽으면서 짜증이 날 정도였으니깐 말이죠.초반부는 그다지 공감가지 않을 수 있는, 그저 사장의 오기로만 비춰질 수 있는 사장..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/Nidec"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>책 이야기</category>
			<category>Nidec</category>
			<category>일본전산</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/47</guid>
			<comments>http://www.pyrasis.com/blog/entry/Nidec#entry47comment</comments>
			<pubDate>Sun, 01 Feb 2009 12:21:33 +0900</pubDate>
		</item>
		<item>
			<title>야마다 사장 샐러리맨의 천국을 만들다 - 미라이공업</title>
			<link>http://www.pyrasis.com/blog/entry/MiraiIndustry</link>
			<description>그렇습니다. 책광고입니다. 이 책은 저 위 표지에 나오는 할아버지가 쓴 책이고. 저자, 역자와 저는 아무런 상관도 없습니다. 하지만 제발 사서 읽어보라고 말하고 싶습니다.이 책에 나오는 미라이 공업에 대해 이렇게 설명합니다. - 전 직원 정규직 종신고용 - 70세 정년, 정리해고, 잔업 없음 - 일일 근로시간 7시간 15분 - 연간 140일 휴가+개인휴가, 육아 휴직 3년 보장 - 5년마다 해외여행, 월급은 대기업 수준정말 천국같은 환경입니다.하지만..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/MiraiIndustry"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>책 이야기</category>
			<category>미라이 공업</category>
			<category>야마다 아키오</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/46</guid>
			<comments>http://www.pyrasis.com/blog/entry/MiraiIndustry#entry46comment</comments>
			<pubDate>Mon, 26 Jan 2009 00:16:30 +0900</pubDate>
		</item>
		<item>
			<title>IT EXPERT 윈도우 디바이스 드라이버</title>
			<link>http://www.pyrasis.com/blog/entry/ITExpertWindowsDeviceDriver</link>
			<description>하제소프트 이봉석 사장님의 IT EXPERT 윈도우 디바이스 드라이버가 출간되었습니다. 이번에 저는 이 책의 감수를 맡게 되었습니다. 국내 윈도우 디바이스 드라이버계의 독보적인 존재이신 이봉석 사장님의 저서를 감수하게 되어 매우 영광으로 생각하고 있습니다.이 책의 특징을 조금 살펴보자면, 윈도우 디바이스 드라이버를 개발하다 보면 많이 어려워하는 부분인 컨텍스트에 대해 자세하게 설명이 되어있습니다. 또한 기존 디바이스 드라이버 책에서는 크게 다루지 안..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/ITExpertWindowsDeviceDriver"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>코드와 소프트웨어</category>
			<category>IT EXPERT 윈도우 디바이스 드라이버</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/45</guid>
			<comments>http://www.pyrasis.com/blog/entry/ITExpertWindowsDeviceDriver#entry45comment</comments>
			<pubDate>Tue, 23 Dec 2008 12:56:00 +0900</pubDate>
		</item>
		<item>
			<title>Kernel Memory Editor 1.0.0 릴리스</title>
			<link>http://www.pyrasis.com/blog/entry/ReleaseKernelMemoryEditor100</link>
			<description>Kernel Memory Editor 1.0.0이 릴리스 되었습니다.Kernel Memory Editor는 Windows의 커널 메모리를 편집하는 프로그램입니다. 커널인 ntoskrnl.exe를 비롯한 커널 메모리상에 로드된 드라이버의 내용을 편집할 수 있습니다.즉 런타임 패치가 가능하다는 것입니다. 그리고 커널 메모리는 커널 및 해당 드라이버에 대한 충분한 이해를 한 뒤 편집을 할 것을 권장합니다.다운로드 및 버그 보고, 기능 추가 요청등은 Ker..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/ReleaseKernelMemoryEditor100"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>내 이야기</category>
			<category>Kernel Memory Editor</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/44</guid>
			<comments>http://www.pyrasis.com/blog/entry/ReleaseKernelMemoryEditor100#entry44comment</comments>
			<pubDate>Wed, 17 Dec 2008 16:42:20 +0900</pubDate>
		</item>
		<item>
			<title>드라이버 서비스를 삭제할 때 주의할 점</title>
			<link>http://www.pyrasis.com/blog/entry/ServiceDeleteFlag</link>
			<description>윈도우에서 드라이버를 로드하려면 일단 CreateService 함수로 서비스를 생성해야 합니다. 드라이버를 잘 사용하고 난 뒤 드라이버를 언로드하고 드라이버의 서비스를 삭제할 때 DeleteService 함수를 사용합니다.이때 응용프로그램과 통신을 위해 생성한 디바이스 오브젝트 등을 CreateFile 등의 함수로 열었을 때 꼭 핸들을 닫아줘야 합니다.핸들을 닫지 않은채로 DeleteService 함수로 드라이버 서비스를 삭제하게 되면 완전히 삭제되..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/ServiceDeleteFlag"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>코드와 소프트웨어</category>
			<category>DeleteFlag</category>
			<category>DeleteService</category>
			<category>ERROR_SERVICE_MARKED_FOR_DELETE</category>
			<category>서비스</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/43</guid>
			<comments>http://www.pyrasis.com/blog/entry/ServiceDeleteFlag#entry43comment</comments>
			<pubDate>Tue, 02 Dec 2008 21:32:15 +0900</pubDate>
		</item>
		<item>
			<title>WinDbg에서 CPU 전환하기</title>
			<link>http://www.pyrasis.com/blog/entry/WinDbgChangeCurrentProcessor</link>
			<description>요즘 나오는 컴퓨터들은 기본적으로 CPU의 개수가 2개 이상입니다. 예전에는 물리적인 CPU를 2개 이상 꽂아서 사용했지만, 최근들어서는 물리적인 CPU 하나에 여러개의 코어를 탑재하여 나오고 있습니다.(인텔 코어2 듀오, 코어2 쿼드 등) 펜티엄 4때에는 하이퍼쓰레딩이라는 기술이 사용되기도 했습니다.윈도우는 실제로 CPU가 2개 인 것이나, 코어 2 듀오 CPU를 하나만 꽂았을 때, 펜티엄4의 하이퍼쓰레딩 모두 여러개의 CPU로 인식합니다.WinD..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/WinDbgChangeCurrentProcessor"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>코드와 소프트웨어</category>
			<category>CPU 전환</category>
			<category>WinDbg</category>
			<category>~0s</category>
			<category>디버깅</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/42</guid>
			<comments>http://www.pyrasis.com/blog/entry/WinDbgChangeCurrentProcessor#entry42comment</comments>
			<pubDate>Mon, 20 Oct 2008 15:33:32 +0900</pubDate>
		</item>
		<item>
			<title>리눅스 커널 Atomic 함수 Visual C++ 버전</title>
			<link>http://www.pyrasis.com/blog/entry/LinuxKernelAtomicOperationsForVisualCxx</link>
			<description>리눅스 커널의 include/asm-i386/atomic.h의 주요 함수를 Visual C++에서 컴파일 할 수 있도록 만들어 보았습니다.Atomic 함수는 멀티 쓰레드, 멀티 프로세서 환경에서도 안전하게 변수의 값을 연산할 수 있도록 해주는 함수입니다. 이런 기능을 Atomic 연산이라고 합니다.리눅스 및 유닉스 계열에서는 Atomic 함수라고 하고, 윈도우에서는 Interlocked 함수라고 합니다.[CODE type=C]#ifndef __ARCH_I386_..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/LinuxKernelAtomicOperationsForVisualCxx"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>코드와 소프트웨어</category>
			<category>Atomic 연산</category>
			<category>atomic.h</category>
			<category>Visual C++</category>
			<category>리눅스 커널</category>
			<category>어셈블리</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/40</guid>
			<comments>http://www.pyrasis.com/blog/entry/LinuxKernelAtomicOperationsForVisualCxx#entry40comment</comments>
			<pubDate>Mon, 15 Sep 2008 15:02:35 +0900</pubDate>
		</item>
		<item>
			<title>리눅스 커널 비트 연산 함수 Visual C++ 버전</title>
			<link>http://www.pyrasis.com/blog/entry/LinuxKernelBitopsForVisualCxx</link>
			<description>리눅스 커널의 include/asm-x86/bitops.h의 주요 함수를 Visual C++에서 컴파일 할 수 있도록 만들어 보았습니다.[CODE type=C]#ifndef _I386_BITOPS_H#define _I386_BITOPS_H/* * Copyright 1992, Linus Torvalds. * Copyright 2008, Lee Jae-Hong (pyrasis) */#include &amp;lt;linux/compiler.h&amp;gt;#define inline..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/LinuxKernelBitopsForVisualCxx"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>코드와 소프트웨어</category>
			<category>bitops.h</category>
			<category>Visual C++</category>
			<category>리눅스 커널</category>
			<category>비트 연산</category>
			<category>어셈블리</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/39</guid>
			<comments>http://www.pyrasis.com/blog/entry/LinuxKernelBitopsForVisualCxx#entry39comment</comments>
			<pubDate>Sun, 07 Sep 2008 15:31:22 +0900</pubDate>
		</item>
		<item>
			<title>윈도우 프로젝트 필수 유틸리티 출간</title>
			<link>http://www.pyrasis.com/blog/entry/PublicationWindowsProjectEssentialUtility</link>
			<description>윈도우 프로젝트 필수 유틸리티 - Subversion, Trac, CruiseControl.NET이 출간되었습니다.요즘 제가 블로그에 글 쓰는 것이 뜸했습니다. 다 이 책 때문이었습니다. 원래는 좀더 일찍 나올 수 있었는데, 표지 결정이 늦어지면서 5월 30일에 출간하게 되었습니다. (이때를 틈타 막판에 원고를 수정할 수 있었습니다. 편집자들이 너무 고생을해서 저를 잡아먹으려고 작전을 세우고 있다는 소문이...) 윈도우 기반 환경에서 Subversi..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/PublicationWindowsProjectEssentialUtility"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>코드와 소프트웨어</category>
			<category>CruiseControl.NET</category>
			<category>PDB</category>
			<category>Release 서버</category>
			<category>Subversion</category>
			<category>trac</category>
			<category>개발 자동화</category>
			<category>심볼 서버</category>
			<category>윈도우 프로젝트 필수 유틸리티</category>
			<category>통합 개발 서버</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/38</guid>
			<comments>http://www.pyrasis.com/blog/entry/PublicationWindowsProjectEssentialUtility#entry38comment</comments>
			<pubDate>Thu, 29 May 2008 00:11:31 +0900</pubDate>
		</item>
		<item>
			<title>APC의 종류</title>
			<link>http://www.pyrasis.com/blog/entry/AsynchronousProcedureCall</link>
			<description>윈도우에는 3종류의 APC가 있습니다.먼저 유저 APC가 있는데, 이것은 유저모드 프로그래밍에서 QueueUserApc 함수로 APC를 등록하거나, overlapped I/O에서 사용됩니다.노멀 APC는 PASSIVE_LEVEL에서 실행되며 유저 APC를 선점할 수 있습니다.스페셜 APC는 APC_LEVEL에서 실행되며 유저모드 코드, 노멀 APC 및 PASSIVE_LEVEL에서 실행되는 쓰레드를 선점할 수 있습니다. 이 스페셜 APC는 I/O 완료..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/AsynchronousProcedureCall"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>코드와 소프트웨어</category>
			<category>APC</category>
			<category>APC_LEVEL</category>
			<category>Normal APC</category>
			<category>Special APC</category>
			<category>User APC</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/21</guid>
			<comments>http://www.pyrasis.com/blog/entry/AsynchronousProcedureCall#entry21comment</comments>
			<pubDate>Sat, 17 May 2008 23:51:53 +0900</pubDate>
		</item>
		<item>
			<title>레퍼런스 카운트와 USB 플러그 앤 플레이</title>
			<link>http://www.pyrasis.com/blog/entry/ReferenceCountAndPlugAndPlay</link>
			<description>윈도우(XP 이상)에서 USB 키보드(USB Composite 장치)를 꽂으면 기본적으로 usbccgp.sys가 로드 됩니다. 마찬가지로 USB 메모리를 꽂으면 usbstor.sys가 로드 됩니다. 각 USB 장치를 빼면 해당 드라이버는 언로드 됩니다. (단 같은 종류의 USB 장치가 여러개 꽂혀 있을 때 모든 장치가 빠져야 해당 드라이버가 언로드 됩니다.)여기서 중요한 것은 ObReferenceObjectByName과 같은 함수를 이용하여 \\Dr..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/ReferenceCountAndPlugAndPlay"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>코드와 소프트웨어</category>
			<category>ObDereferenceObject</category>
			<category>ObReferenceObjectByName</category>
			<category>플러그 앤 플레이</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/37</guid>
			<comments>http://www.pyrasis.com/blog/entry/ReferenceCountAndPlugAndPlay#entry37comment</comments>
			<pubDate>Tue, 06 May 2008 21:06:53 +0900</pubDate>
		</item>
		<item>
			<title>Critical Region과 Guarded Region</title>
			<link>http://www.pyrasis.com/blog/entry/CriticalRegionsAndGuardedRegions</link>
			<description>Critical Region은 공유 자원을 보호하는 가장 기본적인 동기화 요소입니다.KeEnterCriticalRegion 함수로 Critical Region에 진입하며 KTHREAD의 KernelApcDisable에서 1을 뺍니다. 반대로 KeLeaveCriticalRegion 함수로 Critical Region에서 벗어나며 KernelApcDisable에 1을 더합니다. KernelApcDisable의 초기값은 0 입니다. 이렇게 해서 노멀 AP..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/CriticalRegionsAndGuardedRegions"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>코드와 소프트웨어</category>
			<category>Critical Region</category>
			<category>Guarded Region</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/20</guid>
			<comments>http://www.pyrasis.com/blog/entry/CriticalRegionsAndGuardedRegions#entry20comment</comments>
			<pubDate>Sun, 03 Feb 2008 19:49:41 +0900</pubDate>
		</item>
		<item>
			<title>Fast Mutex와 Guarded Mutex</title>
			<link>http://www.pyrasis.com/blog/entry/FastMutexesAndGuardedMutexes</link>
			<description>윈도우 2003에는 Fast Mutex보다 성능이 더 좋아진 Guarded Mutex가 추가되었습니다. Fast Mutex와 Guarded Mutex의 기능은 똑같습니다.Fast Mutex는 IRQL을 APC_LEVEL로 올려주어 노멀 APC, 스페셜 APC를 차단합니다.IRQL이 APC_LEVEL로 높아지면 PASSIVE_LEVEL에서 실행되고 있는 노멀 APC는 IRQL이 높아졌기 때문에 제어권을 빼앗을 수 없습니다. 그리고 APC_LEVEL에서..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/FastMutexesAndGuardedMutexes"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>코드와 소프트웨어</category>
			<category>Fast Mutex</category>
			<category>Guarded Mutex</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/19</guid>
			<comments>http://www.pyrasis.com/blog/entry/FastMutexesAndGuardedMutexes#entry19comment</comments>
			<pubDate>Sat, 08 Dec 2007 20:53:38 +0900</pubDate>
		</item>
		<item>
			<title>Lookaside List의 동작 방식</title>
			<link>http://www.pyrasis.com/blog/entry/MechanismOfLookasideList</link>
			<description>Lookaside List는 같은 크기의 메모리를 반복적으로 할당, 해제 할 경우 사용합니다. Lookaside List는 메모리를 ExAllocatePool, ExFreePool 함수로 일일이 할당, 해제 하는 것 보다 매우 빠르고 효율적으로 메모리를 사용할 수 있도록 해줍니다.Lookaside List는 내부적으로 ExAllocatePool과 ExFreePool을 이용하여 메모리를 할당, 해제 합니다. Non Paged Lookaside List..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/MechanismOfLookasideList"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>코드와 소프트웨어</category>
			<category>ExAllocatePool</category>
			<category>ExFreePool</category>
			<category>Lookside List</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/23</guid>
			<comments>http://www.pyrasis.com/blog/entry/MechanismOfLookasideList#entry23comment</comments>
			<pubDate>Sat, 17 Nov 2007 14:12:45 +0900</pubDate>
		</item>
		<item>
			<title>CONTAINING_RECORD 매크로의 이해</title>
			<link>http://www.pyrasis.com/blog/entry/PracticalContainingRecordMacro</link>
			<description>커널 모드 프로그래밍을 하다 보면 CONTAINING_RECORD 매크로를 자주 보게 됩니다. 이 매크로는 자기 자신을 포함하고 있는 상위 구조체의 주소를 얻기 위해 사용합니다.간단한 예제를 살펴보겠습니다.&lt;div id="code"&gt;&lt;code&gt;&lt;span style="color: #00ff00;"&gt;typedef&lt;/span&gt; &lt;span style="color: #00ff00;"&gt;struct&lt;/span&gt; _HEADER &lt;span style="color: #c0c0c0;"&gt;&amp;#123;&lt;/span&gt; ULONG Hello; ULONG World; ULONG A; ULONG B; ULONG C; PVOID Body;&lt;span style="color: #c0c0c0;"&gt;&amp;#125;&lt;/span&gt; HEADER, *PHEADER;&lt;/code&gt;&lt;/div&gt;이렇게 HEADER라는 구조체가..&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pyrasis.com/blog/entry/PracticalContainingRecordMacro"&gt;글 전체보기&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<category>코드와 소프트웨어</category>
			<category>CONTAINING_RECORD</category>
			<category>매크로</category>
			<author>pyrasis</author>
			<guid>http://www.pyrasis.com/blog/17</guid>
			<comments>http://www.pyrasis.com/blog/entry/PracticalContainingRecordMacro#entry17comment</comments>
			<pubDate>Mon, 29 Oct 2007 21:21:31 +0900</pubDate>
		</item>
	</channel>
</rss>
