#ifndef __IPKERN_IPKERN_H__ #define __IPKERN_IPKERN_H__ typedef VOID (*PCMD_HANDLER)( LONG lNumArgs, PWCHAR rgpwszArgs[] ); typedef struct _CMD_ENTRY { DWORD dwTokenId; PCMD_HANDLER pfnHandler; }CMD_ENTRY, *PCMD_ENTRY; #define PhysAddrToUnicode(pwszUnicode,pszAddr,dwLen) \ { \ CHAR __szTemp[3*MAXLEN_PHYSADDR + 8]; \ DWORD __i,__dwTempLen; \ __dwTempLen = (((dwLen) <= MAXLEN_PHYSADDR) ? (dwLen) : MAXLEN_PHYSADDR); \ for(__i = 0; __i < __dwTempLen; __i++) \ { \ sprintf(&(__szTemp[3*__i]),"%02X-",pszAddr[__i]); \ } \ MultiByteToWideChar(CP_ACP, \ 0, \ (__szTemp), \ -1, \ (pwszUnicode), \ 3*__i); \ pwszUnicode[(3*__i) - 1] = TEXT('\0'); \ } BOOL MatchToken( IN PWCHAR pwszToken, IN DWORD dwTokenId ); LONG ParseCommand( PCMD_ENTRY pCmdTable, LONG lNumEntries, PWCHAR pwszFirstArg ); VOID NetworkToUnicode( IN DWORD dwAddress, OUT PWCHAR pwszBuffer ); DWORD DisplayMessage( DWORD dwMsgId, ... ); PWCHAR MakeString( DWORD dwMsgId, ... ); VOID FreeString( PWCHAR pwszString ); DWORD UnicodeToNetwork( PWCHAR pwszAddr ); #endif // __IPKERN_IPKERN_H__