实验22实现标准的流接口驱动..docVIP

  • 3
  • 0
  • 约3.88千字
  • 约 9页
  • 2017-01-12 发布于重庆
  • 举报
实验22实现标准的流接口驱动.

实验2实现标准的流接口驱动 三、在Platform Builder中修改MyDriver.cpp的DllMain函数. DLLMail函数的内容为: BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: RETAILMSG (1, (_T( MyDriver Demo: DLL_PROCESS_ATTACH \n))); return TRUE; case DLL_THREAD_ATTACH: RETAILMSG (1, (_T(MyDriver Demo: DLL_THREAD_ATTACH \n))); break; case DLL_THREAD_DETACH: RETAILMSG (1, (_T(MyDriver Demo: DLL_THREAD_DETACH \n))); break; case DLL_PROCESS_DETACH: RETAILMSG (1, (_T(MyDriver Demo: DLL_PROCESS_DETACH \n))); break; } return TRUE; } 四、在MyDriver.cpp文件的DLLMail函数前面加入如下内容: #define BUFSIZE 256 WCHAR achBuffer[BUFSIZE]; void DBGOut(DWORD dwValue); 五、在MyDriver.cpp文件中添加导出函数的具体实现,代码如下: DWORD STR_Init( DWORD dwContext ) { DWORD dwRet = 0; RETAILMSG ( 1, ( _T(MyDriver Demo: STR_Init\n) ) ); //Init the driver memset ( achBuffer, 0, BUFSIZE*sizeof ( WCHAR ) ); //Return a nonzero number dwRet = 1; return dwRet; } BOOL STR_Deinit ( DWORD hDeviceContext ) { BOOL bRet = TRUE; RETAILMSG ( 1, ( _T (MyDriver Demo: STR_Deinit\n) ) ); return bRet; } DWORD STR_Open( DWORD hDeviceContext, DWORD AccessCode, DWORD ShareMode ) { DWORD dwRet = 0; RETAILMSG ( 1, ( _T(MyDriver Demo: STR_Open\n) ) ); //Return a nonnull handle dwRet = 1; return dwRet; } BOOL STR_Close ( DWORD hOpenContext ) { BOOL bRet = TRUE; RETAILMSG ( 1, ( _T(MyDriver Demo: STR_Close\n) ) ); return bRet; } BOOL STR_IOControl ( DWORD hOpenContext, DWORD dwCode, PBYTE pBufIn, DWORD dwLenIn, PBYTE pBufOut, DWORD dwLenOut, PDWORD pdwActualOut) { BOOL bRet = TRUE; RETAILMSG ( 1, ( _T(MyDriver Demo: STR_IoControl\n) ) ); return bRet; } void STR_PowerDown ( DWORD hDeviceContext ) { RETAILMSG ( 1, ( _T(MyDriver Demo: STR_PowerDown\n) ) ); } void STR_PowerUp ( DWORD hDev

文档评论(0)

1亿VIP精品文档

相关文档