개발

[DDK] Windows NT드라이버 개발자들을 위한 정보 - 피해야 할 사항들

요약 loadTOCNode(1, ‘summary’); 다음은 Windows NT 장치 드라이버들을 만들기 위한 정보 입니다. 나타난 정보는 모든 기술에 적용됩니다. 이것은 드라이버 문제를 해결하기 위한 점검 목록으로도 사용될 수 있습니다. 아래에 기술된 정보를 효과적으로 사용하기 위해서 Windows NT 구조에 대한 기본 지식과 일부 장치 드라이버 개발 경험이 필요합니다. 장치 드라이버 개발에 대한 추가 정보를 보시려면 MSDN Professional 멤버쉽을 […]

[DDK] Windows NT드라이버 개발자들을 위한 정보 - 피해야 할 사항들 더 읽기"

[DDK] MS에서 공개하지 않은 함수 ObOpenObjectByName() 내부 코드

NTSTATUS    STDCALL   ObOpenObjectByName(     POBJECT_ATTRIBUTES ObjectAttributes,     POBJECT_TYPE ObjectType,     PVOID ParseContext,     KPROCESSOR_MODE AccessMode,     ACCESS_MASK DesiredAccess,     PACCESS_STATE PassedAccessState,     PHANDLE Handle     )   {      UNICODE_STRING RemainingPath;      PVOID Object = NULL;      NTSTATUS Status;        DPRINT(“ObOpenObjectByName()\n”);      

[DDK] MS에서 공개하지 않은 함수 ObOpenObjectByName() 내부 코드 더 읽기"

[DDK] Recognizer

필터 드라이버를 등록할때 레코그나이져(인식기)가 사용된다. 일단 지금 필터를 등록하는데 앞으로 등록되는 VDO보다는 지금 등록되어 있는 VDO에 기존의 필터를 붙이는게 중요하다, 백신을 보면 재부팅을 안하고 필터를 다 붙이는 기술을 지니고 있다. 이것은 OSR에서 만든 레코그나이저를 사용하는 듯한데,, 일단 A사의 V백신 및 N사의 P백신을 보면 필터 드라이버를 붙이는 모습을 볼 수 있다. 기본적으로 디바이스 트리에 FsRec라는 게

[DDK] Recognizer 더 읽기"

[DDK] Bug check 0x50 PAGE_FAULT_IN_NONPAGED_AREA 추적방법

What Happened? To understand this bugcheck code, it’s first necessary to understand what a “page fault” is. If you’re not completely sure you understand this concept, read the article So, Exactly What Is A Page Fault here at OSR Online. The Windows Memory Manager reserves pre-defined ranges of kernel virtual address space for specific uses.

[DDK] Bug check 0x50 PAGE_FAULT_IN_NONPAGED_AREA 추적방법 더 읽기"

[DDK] MS에서 사용하는 Common Naming Prefix

Prefix Component ———Cc ——————-Cache manager Cm Configuration manager Ex Executive support routines FsRtl File system driver run-time library Hal Hardware abstraction layer Io I/O manager Ke Kernel Ks Kernel Streaming Lpc Local procedure call Lsa Local security authentication Mm Memory manager Nt Windows system services (most of which are exported as Windows functions) Ob Object

[DDK] MS에서 사용하는 Common Naming Prefix 더 읽기"

윈도우즈 디바이스 드라이버 개발 방법

윈도우즈 디바이스 드라이버 개발 방법 디바이스 드라이버 개발을 처음 시작하시는 분들이 가장 많이 하시는 질문은 ” 디바이스 드라이버를 개발하려면 무엇을 어떻게 공부해야 하나요 ? ” 라는 것이다 . 일반 애플리케이션 프로그램 개발을 시작하는 경우에는 자료도 많고 , 주변에 개발자들도 많아서 공부 방법이나 자료들을 쉽게 접할 수 있는데 , 디바이스 드라이버 분야는 개발자들이 많은 분야도 아니고

윈도우즈 디바이스 드라이버 개발 방법 더 읽기"

윈도우 디바이스 드라이버 개발환경 구축

윈도우 디바이스 드라이버 개발환경 구축 디바이스 드라이버가 처음이신 분들이라면 , 아직 개념 및 용어 이해에 어려움이 있었을 것으로 본다 . 그것은 아마도 실제 개발을 해보지 않은 상태에서 이론적인 내용만 가지고 이해하려다 보니 어려웠을 것으로 보인다 . 그래서 , 이번 컬럼에서는 디바이스 드라이버를 실습해 볼 수 있는 개발 환경 구축에 대한 내용을 다뤄 보도록 하겠다 .

윈도우 디바이스 드라이버 개발환경 구축 더 읽기"

tomcat+mysql 설치

1. JDK를 설치한다. 2. PATH에 C:\Program Files\Java\jdk1.6.0_12\bin 을 추가한다. 3. CLASSPATH=C:\Program Files\Java\jdk1.6.0_12\lib\tools.jar 환경변수 추가 4. tomcat 설치 5. mysql 설치 6. mysql-connector-java-x.x.x-bin.jar 다운로드 7. mysql-connector-java-5.0.7-bin.jar -> c:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\ 에 복사 8. Tomcat 5.5/conf/server.xml에서 <Service name=”Catalina”>~</Service>밑에 아래와 같이 호스트별로 추가시켜 준다.       <!– localhost 호스트 추가 (기본적으로 있음) –>     

tomcat+mysql 설치 더 읽기"

MySQL 동시 접속수 500 이상으로 늘리기

MySQL 은 기본적으로 동시 접속수가 500 connection 이하에 최적화가 되어 있다.  MySQL 홈의문서 중 http://www.mysql.com/doc/L/i/Linux.html 문서에 의하면, 500 connection 이상을 설정 할 경우 glibc 의 linuxthreads 에 패치를 하지 않았을 경우 상당히 불안하다고 보고 되고있다. 이 문서에서는 이 문제에 관한 부분을 언급하게 된다. 동시 접속수 500 이상을 위해서는 일단glibc 를 리빌드해야 하며, 재컴파일된 libpthread.a 를

MySQL 동시 접속수 500 이상으로 늘리기 더 읽기"

자바스크립트의 모든것

HTML에 JavaScript 삽입<script language=”javascript”>JavaScript Statements</script> HTML에 JavaScript 코드 파일 삽입<script language=”javascipt” src=”src.js”></script> 변수의 대소문자 구분 변수에 포함된 데이터의 형을 지정하지 않고, JavaScript 인터프리터가 변수에 포함된 데이터 형을 추적하고 변환. JavaScript 데이터 형 숫 자 형 : 정수와 부동 소수 BOOLEAN : true, false STRING : 작은 따옴표나 큰 따옴표에 들어가 있는 값으로, 특수문자 포맷 사용시에는

자바스크립트의 모든것 더 읽기"

데몬 프로세스 생성하기

리눅스 네트워크 프로그래밍2부:데몬 프로세스 생성하기 글/ Ivan Griffin과 John Nelson 역/ 이기동(자유기고가) 데몬 프로세스는 여러 클라이언트에 서비스하기 위해서 백그라운드로 실행되는 서버이다. 여러분은 데몬 프로세스를 생성할 때 다음과 같은 몇 가지 사항에 주의하여야 한다. 개발하는 동안 디버깅할 때 printf나 write를 사용할 수 있도록 서버를 포그라운드로 실행하는 것이 좋다. 또한, 서버가 오동작 한다면 중단 문자(보통 CRTL-C)를 보내어

데몬 프로세스 생성하기 더 읽기"

gdbm

목차 Copying Conditions. Introduction to GNU dbm. List of functions. Opening the database. Closing the database. Inserting and replacing records in the database. Searching for records in the database. Removing records from the database. Sequential access to records. Database reorganization. Database Synchronization Error strings. Seting options. File Locking. Two useful variables. Compatibility with standard dbm

gdbm 더 읽기"

[HTML] div 용법 정리

출처 : http://binnamoo.com/626   공간지정태그에는 DIV, SPAN, FIELDSET 3가지 종류가 있다. 비슷한 태그로서는 TABLE 태그가 있다.하지만 TABLE은 하나의 공간을 표현하기 위해 TR, TD로 나누어 표현하지만, DIV, SPAN, FIELDSET은 바로 보여지고 표현되는 것이 특징이다. DIV, SPAN, FIELDSET 태그 모두 특별한 속성은 없으며, style속성에 따라 형태가 달라진다. ▶ DIV, SPAN, FIELDSET 공통점  – 특별한 태그 속성이 없음 

[HTML] div 용법 정리 더 읽기"

UNIX Socket FAQ

일반 정보와 개념 이 FAQ에 대하여 누구를 위한 FAQ 인가? 소켓은 무엇인가? 소켓은 어떻게 작동하는가? 책에 있는 소스코드를 구할 수 있는데가 있는가? 또 다른 정보들은 어디에서 구할 수 있는가? 클라이언트와 서버 양쪽에 관한 질문 (TCP/SOCK_STREAM) 언제 상대방쪽 소켓이 끊겼는지 알 수 있는 방법이 있는가? bind()의 두 번째 파라메터는 무엇인가? 주어진 서비스의 port번호를 얻는 방법은? bind()

UNIX Socket FAQ 더 읽기"

네트워크 바이트 순서

네트워크 스택과 통신 프로토콜 역시 엔디안 방식을 정의해야 한다. 두 노드가 엔디안 방식이 다르면 서로 통신하지 못하기 때문이다. 그래서 임베디드 프로그래머는 특히 엔디안 방식에 신경 써야 한다. TCP/IP(Transmission Control Protocol and the Internet Protocol) 내 모든 프로토콜 계층은 빅 엔디안 방식을 따른다. 즉 (IP 주소, 패킷 길이, 체크섬 등) 계층 헤더에 들어 있는 16비트 값이나

네트워크 바이트 순서 더 읽기"

PE 파일포맷

개요  윈도우 시스템 프로그래밍한다는 사람치고 PE 파일에 대해서 모르는 사람은 아마 거의 없을 것이다. 윈도우 실행 파일 및 DLL, 그리고 드라이버 파일까지도 PE 파일 형태를 따르고 있으니 뭘 해도 따라다니는게 이 PE(Portable Executable) 파일 포맷이니까 말이다. PE 파일 포맷은 크게 헤더, 섹션, 데이터의 세부분으로 나뉘는데 기존 DOS 시절 사용하던 COFF(Common Object File Format)과 거의 비슷한

PE 파일포맷 더 읽기"

MFC 모든 헤더와 라이브러리 설명

다음글은 하이텔  MFC소모임의 시삽이신 권정혁님의 글을 정혁님의 허락하에다음과 같이 기재합니다. 허락해주신 정혁님께 감사드립니다.****************************************************************************이 글은 Mike Blaszczak 의 책 “Professional MFC” 의 Appendix D 에 들어있는내용을 번역한 글입니다. 제 허락없이는 다른 어떤게시판에도 옮기실수 없습니다. 물론 글의 원 소유자는 Mike 입니다.                                          

MFC 모든 헤더와 라이브러리 설명 더 읽기"

__cdecl,__stdcall__fastcall 호출규약

__cdecl C언어 표준 호출 규약이다. 파라미터는 오른쪽에서 왼쪽으로 스택을 통해 전달되며, 호출한 곳에서 스택을 정리한다. 특징적인건 호출한 쪽에서 스택을 정리하기 때문에 가변 인자를 지원한다는 것이다.  extern “C” int __cdecl CdeclFunc(int a, int b, int c)   {       printf(“%d %d %d\n”, a, b, c);   }  위 함수를 호출하기 위한 어셈블리 코드는 아래와 같다. add 명령어를 통해서 호출 한

__cdecl,__stdcall__fastcall 호출규약 더 읽기"

OpenSSL API를 이용한 보안 프로그래밍

보안 통신용 오픈 라이브러리인 OpenSSL용 API를 사용하는 방법을 배운다는 것은 힘든 일입니다. 문서화가 아직 덜 되어있기 때문입니다. 이 글을 통해서 이를 극복해 봅시다. 기본 연결을 설정한 후에, OpenSSL의 BIO 라이브러리를 사용하여 보안/비보안 연결을 구축하는 방법을 배워봅시다. 에러 탐지에 대한 부분도 설명합니다. OpenSSL API와 관련한 문서는 약간 모호하다. OpenSSL의 사용법에 대한 튜토리얼도 많지 않으므로, 애플리케이션에서 이를

OpenSSL API를 이용한 보안 프로그래밍 더 읽기"

[VC] #pragma

VC++에서 #pragma 사용법 설명.. MSDN에 최적화 관련 #pragma 용법은 아래와 같다. http://msdn.microsoft.com/ko-kr/library/h7k3a0bw.aspx   #pragma auto_inline #pragma check_stack #pragma function #pragma inline_depth #pragma inline_recursion #pragma intrinsic #pragma optimize   이중에서 일단, #pragma function #pragma intrinsic #pragma optimize 에 대해서 정리하고 다음것은 나중에 정리하자.   1. #pragma function <사용법> #pragma function( function1 [, function2, …] ) intrinsic

[VC] #pragma 더 읽기"

위로 스크롤