⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbdgadget.cpp

📁 S3C2440 base Wince USB_gadget driver
💻 CPP
字号:

#include "usbdgadget.h"
#include "generic.h"
#include <winbase.h>
#include <pm.h>

BOOL 
CALLBACK DllMain(HANDLE hDLL,
				 DWORD dwReason,
				 LPVOID lpvReserved)
{
    switch (dwReason) {
        case DLL_PROCESS_ATTACH :
            DEBUGREGISTER((HINSTANCE)hDLL);
			RETAILMSG(MDSMSG, (TEXT("UDG Attach : DLL_PROCESS_ATTACH\r\n")));
            //DisableThreadLibraryCalls((HMODULE) hDLL);
            break;

        case DLL_PROCESS_DETACH :
			RETAILMSG(MDSMSG, (TEXT("UDG Detach : DLL_PROCESS_DETACH\r\n")));
	        break;

        case DLL_THREAD_DETACH :
            break;

        case DLL_THREAD_ATTACH :
            break;

        default :
            break;
    }
    return TRUE;
}

DWORD
UDG_Init (DWORD dwIndex)
{
	DWORD dwRet;
	RETAILMSG(MDSMSG, (TEXT("UDG_Init()\r\n")));
	
	dwRet = (DWORD)UDGContext::CreateUDGContext(dwIndex);

	return dwRet;
}


BOOL
UDG_Deinit (DWORD dwData)
{
	RETAILMSG(MDSMSG, (TEXT("UDG_Deinit()\r\n")));

	return ( g_pUDGContext->Deinit(
								g_pUDGContext->m_pHWContext )
							);
}


VOID
UDG_PowerUp (DWORD hDeviceContext)
{
	RETAILMSG(MDSMSG, (TEXT("UDG_PowerUp()\r\n")));
	g_pUDGContext->PowerUp( 
						g_pUDGContext->m_pHWContext 
					);
}


VOID
UDG_PowerDown (DWORD hDeviceContext)
{
	RETAILMSG(MDSMSG, (TEXT("UDG_PowerDown()\r\n")));
	g_pUDGContext->PowerDown( 
					g_pUDGContext->m_pHWContext
				);
}

DWORD
UDG_Open (DWORD dwData,
		  DWORD dwAccess,
		  DWORD dwShareMode)
{
	RETAILMSG(MDSMSG, (TEXT("UDG_Open()\r\n")));

	return (TRUE);
}   


BOOL
UDG_Close (DWORD Handle)
{
	RETAILMSG(MDSMSG, (TEXT("UDG_Close()\r\n")));
/*
	if(g_pUDGContext->StopInterruptThread() != ERROR_SUCCESS)
	{
		RETAILMSG(MDSMSG, (TEXT("UDG_Open() - Failed stop interrupt thread \r\n")));
        return (FALSE);
	}
*/	return (TRUE);
}   


BOOL 
UDG_IOControl(
    		DWORD hOpenContext,
    		DWORD dwCode,
    		PBYTE pBufIn,
    		DWORD dwLenIn,
    		PBYTE pBufOut,
    		DWORD dwLenOut,
    		PDWORD pdwActualOut)
{
	RETAILMSG(MDSMSG, (TEXT("UDG_IOControl()\r\n")));

	return TRUE;
} 


DWORD 
UDG_Write (DWORD hOpenContext,
		   LPVOID pBuffer, 
		   DWORD dwCount)
{
	RETAILMSG(MDSMSG, (TEXT("UDG_Write()\r\n")));
	DWORD dwWritten = 0;

	dwWritten = g_pUDGContext->StartTransfer(
					g_pUDGContext->m_pHWContext,
					pBuffer, 
					dwCount, 
					IN_TRANSFER
				);		

	return dwWritten;
}


DWORD 
UDG_Read (DWORD hOpenContext,
		  LPVOID pBuffer, 
		  DWORD dwCount)
{
//	RETAILMSG(MDSMSG, (TEXT("UDG_Read()\r\n")));
	DWORD dwBytesRead = 0;

	dwBytesRead = g_pUDGContext->StartTransfer(
					g_pUDGContext->m_pHWContext,
					pBuffer,
					dwCount,
					OUT_TRANSFER
				);	

//	RETAILMSG(MDSMSG, (_T("UDG_Read() : Read_data: %s, dwBytesRead: %d\r\n"),
//			pBuffer, dwBytesRead));

	return dwBytesRead;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -