상세 컨텐츠

본문 제목

레거시드라이버 - (sample_1)

청강컴정/시스템프로그래밍

by luckey 2009. 5. 21. 10:33

본문

// 드라이버를 생성하는데 사용되는 대부분의 구조체, 함수이름, 상수이름등이 기술된 DDK가 제공하는 헤더파일
#include <ntddk.H>

typedef unsigned short WORD;

/*
드라이버가 메모리에서 내려올때 호출되는 함수
-------------------------------------------
Parameter
1. DriverObject
드라이버를 표현하는 자료구조
*/

void SIMPLEUnload( PDRIVER_OBJECT DriverObject )
{
}

/*
드라이버가 메모리에 올라갈때 호출되는 함수
-------------------------------------------
Parameter
1. DriverObject
드라이버를 표현하는 자료구조
2. RegistryPath
드라이버가 레지스트리에 등록된(서비스형태로)위치를 알려주는 키문자열
*/

NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
{
 WORD String[100];
 // RtlZeroMomory(String, 100*2);
 RtlZeroMemory(String, 100*sizeof(WORD));
 RtlMoveMemory(String, RegistryPath->Buffer, RegistryPath->Length);

 //SIMPLEUnload가 드라이버가 내려갈때 무언가 할일을 담당한다.
 DriverObject->DriverUnload = SIMPLEUnload; 
 DbgPrint("%ws\n", String);

 //printf("%s",); - BCS CODE
 //printf("%ws",); - UNICODE
 //DebugOutputString(); //API에서 사용되는 디버그 메시지 출력 함수 - BCS CODE
 //DebugOutputStringW(); //API에서 사용되는 디버그 메시지 출력 함수 - UNICODE

 return(STATUS_SUCCESS);
}

관련글 더보기

댓글 영역