我现在学习流驱动,写了一个空的驱动,驱动是编进内核了,但加载了,马上又被卸载了,超级终端输出为
GPI DLL_PROCESS_ATTACH GPI DLL_PROCESS_DETACH
我写了一个测试程序,GetLastError返回值为55,
驱动源码如下:其它文件看附件
// GPI.cpp : Defines the entry point for the DLL application. //
#include "stdafx.h"
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch(ul_reason_for_call) { case DLL_PROCESS_ATTACH: RETAILMSG(1,(TEXT("GPI DLL_PROCESS_ATTACH\n"))); return TRUE; case DLL_THREAD_ATTACH: RETAILMSG(1,(TEXT("GPI DLL_THEARD_ATTACH\n"))); return TRUE; case DLL_PROCESS_DETACH: RETAILMSG(1,(TEXT("GPI DLL_PROCESS_DETACH\n"))); return TRUE; case DLL_THREAD_DETACH: RETAILMSG(1,(TEXT("GPI DLL_THEARD_DETACH\n"))); return TRUE; } }
DWORD GPI_Init(DWORD dwContext) { DWORD dwRet=0; RETAILMSG(1,(TEXT("GPI Init\n\r"))); dwRet=1; return dwRet; }
BOOL GPI_Deinit(DWORD dwContext) { RETAILMSG(1,(TEXT("GPI Deinit\n\r"))); return true; }
DWORD GPI_Open(DWORD dwContext) {
RETAILMSG(1,(TEXT("GPI Open\n\r"))); return true; } BOOL GPI_Close(DWORD dwContext) { RETAILMSG(1,(TEXT("GPI Close\n\r"))); return true; }
GPI.rar
(5.14 KB, 下载次数: 3)
|