VirtualBox

Ignore:
Timestamp:
Oct 21, 2008 9:26:26 AM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
38181
Message:

win64 VMMR0->VBoxNetFlt and VBoxNetFlt->VMMR0 locate/create marker call wrapping

Location:
trunk/src/VBox/HostDrivers/VBoxNetFlt
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/VBoxNetFlt/Makefile.kmk

    r12974 r13421  
    3737VBoxNetFlt_LDFLAGS.win.x86 = -Entry:DriverEntry@8
    3838VBoxNetFlt_LDFLAGS.win.amd64 = -Entry:DriverEntry
     39VBoxNetFlt_SOURCES.win.amd64 += win/VBoxNetFltA-win.asm
     40VBoxNetFlt_DEFS.win.amd64    += SUPDRV_WITH_UNWIND_HACK
    3941VBoxNetFlt_LIBS.win = \
    4042        $(PATH_SDK_W2K3DDK_LIB)/ntoskrnl.lib \
  • trunk/src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFlt.c

    r12653 r13421  
    374374}
    375375
     376#ifdef SUPDRV_WITH_UNWIND_HACK
     377# if defined(RT_OS_WINDOWS) && defined(RT_ARCH_AMD64)
     378#  define NETFLT_DECL_CALLBACK(type) DECLASM(DECLHIDDEN(type))
     379#  define NETFLT_CALLBACK(_n) netfltNtWrap##_n
     380
     381NETFLT_DECL_CALLBACK(int)  NETFLT_CALLBACK(vboxNetFltPortXmit)(PINTNETTRUNKIFPORT pIfPort, PINTNETSG pSG, uint32_t fDst);
     382NETFLT_DECL_CALLBACK(bool) NETFLT_CALLBACK(vboxNetFltPortIsPromiscuous)(PINTNETTRUNKIFPORT pIfPort);
     383NETFLT_DECL_CALLBACK(void) NETFLT_CALLBACK(vboxNetFltPortGetMacAddress)(PINTNETTRUNKIFPORT pIfPort, PRTMAC pMac);
     384NETFLT_DECL_CALLBACK(bool) NETFLT_CALLBACK(vboxNetFltPortIsHostMac)(PINTNETTRUNKIFPORT pIfPort, PCRTMAC pMac);
     385NETFLT_DECL_CALLBACK(int)  NETFLT_CALLBACK(vboxNetFltPortWaitForIdle)(PINTNETTRUNKIFPORT pIfPort, uint32_t cMillies);
     386NETFLT_DECL_CALLBACK(bool) NETFLT_CALLBACK(vboxNetFltPortSetActive)(PINTNETTRUNKIFPORT pIfPort, bool fActive);
     387NETFLT_DECL_CALLBACK(void) NETFLT_CALLBACK(vboxNetFltPortDisconnectAndRelease)(PINTNETTRUNKIFPORT pIfPort);
     388NETFLT_DECL_CALLBACK(void) NETFLT_CALLBACK(vboxNetFltPortRetain)(PINTNETTRUNKIFPORT pIfPort);
     389NETFLT_DECL_CALLBACK(void) NETFLT_CALLBACK(vboxNetFltPortRelease)(PINTNETTRUNKIFPORT pIfPort);
     390
     391# else
     392#  error "UNSUPPORTED (SUPDRV_WITH_UNWIND_HACK)"
     393# endif
     394#else
     395# define NETFLT_DECL_CALLBACK(type) static DECLCALLBACK(type)
     396# define NETFLT_CALLBACK(_n) _n
     397#endif
    376398
    377399/**
    378400 * @copydoc INTNETTRUNKIFPORT::pfnXmit
    379401 */
    380 static DECLCALLBACK(int) vboxNetFltPortXmit(PINTNETTRUNKIFPORT pIfPort, PINTNETSG pSG, uint32_t fDst)
     402NETFLT_DECL_CALLBACK(int) vboxNetFltPortXmit(PINTNETTRUNKIFPORT pIfPort, PINTNETSG pSG, uint32_t fDst)
    381403{
    382404    PVBOXNETFLTINS pThis = IFPORT_2_VBOXNETFLTINS(pIfPort);
     
    409431 * @copydoc INTNETTRUNKIFPORT::pfnIsPromiscuous
    410432 */
    411 static DECLCALLBACK(bool) vboxNetFltPortIsPromiscuous(PINTNETTRUNKIFPORT pIfPort)
     433NETFLT_DECL_CALLBACK(bool) vboxNetFltPortIsPromiscuous(PINTNETTRUNKIFPORT pIfPort)
    412434{
    413435    PVBOXNETFLTINS pThis = IFPORT_2_VBOXNETFLTINS(pIfPort);
     
    431453 * @copydoc INTNETTRUNKIFPORT::pfnGetMacAddress
    432454 */
    433 static DECLCALLBACK(void) vboxNetFltPortGetMacAddress(PINTNETTRUNKIFPORT pIfPort, PRTMAC pMac)
     455NETFLT_DECL_CALLBACK(void) vboxNetFltPortGetMacAddress(PINTNETTRUNKIFPORT pIfPort, PRTMAC pMac)
    434456{
    435457    PVBOXNETFLTINS pThis = IFPORT_2_VBOXNETFLTINS(pIfPort);
     
    453475 * @copydoc INTNETTRUNKIFPORT::pfnIsHostMac
    454476 */
    455 static DECLCALLBACK(bool) vboxNetFltPortIsHostMac(PINTNETTRUNKIFPORT pIfPort, PCRTMAC pMac)
     477NETFLT_DECL_CALLBACK(bool) vboxNetFltPortIsHostMac(PINTNETTRUNKIFPORT pIfPort, PCRTMAC pMac)
    456478{
    457479    PVBOXNETFLTINS pThis = IFPORT_2_VBOXNETFLTINS(pIfPort);
     
    475497 * @copydoc INTNETTRUNKIFPORT::pfnWaitForIdle
    476498 */
    477 static DECLCALLBACK(int) vboxNetFltPortWaitForIdle(PINTNETTRUNKIFPORT pIfPort, uint32_t cMillies)
     499NETFLT_DECL_CALLBACK(int) vboxNetFltPortWaitForIdle(PINTNETTRUNKIFPORT pIfPort, uint32_t cMillies)
    478500{
    479501    PVBOXNETFLTINS pThis = IFPORT_2_VBOXNETFLTINS(pIfPort);
     
    506528 * @copydoc INTNETTRUNKIFPORT::pfnSetActive
    507529 */
    508 static DECLCALLBACK(bool) vboxNetFltPortSetActive(PINTNETTRUNKIFPORT pIfPort, bool fActive)
     530NETFLT_DECL_CALLBACK(bool) vboxNetFltPortSetActive(PINTNETTRUNKIFPORT pIfPort, bool fActive)
    509531{
    510532    PVBOXNETFLTINS pThis = IFPORT_2_VBOXNETFLTINS(pIfPort);
     
    541563 * @copydoc INTNETTRUNKIFPORT::pfnDisconnectAndRelease
    542564 */
    543 static DECLCALLBACK(void) vboxNetFltPortDisconnectAndRelease(PINTNETTRUNKIFPORT pIfPort)
     565NETFLT_DECL_CALLBACK(void) vboxNetFltPortDisconnectAndRelease(PINTNETTRUNKIFPORT pIfPort)
    544566{
    545567    PVBOXNETFLTINS pThis = IFPORT_2_VBOXNETFLTINS(pIfPort);
     
    684706 * @copydoc INTNETTRUNKIFPORT::pfnRetain
    685707 */
    686 static DECLCALLBACK(void) vboxNetFltPortRelease(PINTNETTRUNKIFPORT pIfPort)
     708NETFLT_DECL_CALLBACK(void) vboxNetFltPortRelease(PINTNETTRUNKIFPORT pIfPort)
    687709{
    688710    PVBOXNETFLTINS pThis = IFPORT_2_VBOXNETFLTINS(pIfPort);
     
    736758 * @copydoc INTNETTRUNKIFPORT::pfnRetain
    737759 */
    738 static DECLCALLBACK(void) vboxNetFltPortRetain(PINTNETTRUNKIFPORT pIfPort)
     760NETFLT_DECL_CALLBACK(void) vboxNetFltPortRetain(PINTNETTRUNKIFPORT pIfPort)
    739761{
    740762    PVBOXNETFLTINS pThis = IFPORT_2_VBOXNETFLTINS(pIfPort);
     
    814836    pNew->pNext                         = NULL;
    815837    pNew->MyPort.u32Version             = INTNETTRUNKIFPORT_VERSION;
    816     pNew->MyPort.pfnRetain              = vboxNetFltPortRetain;
    817     pNew->MyPort.pfnRelease             = vboxNetFltPortRelease;
    818     pNew->MyPort.pfnDisconnectAndRelease= vboxNetFltPortDisconnectAndRelease;
    819     pNew->MyPort.pfnSetActive           = vboxNetFltPortSetActive;
    820     pNew->MyPort.pfnWaitForIdle         = vboxNetFltPortWaitForIdle;
    821     pNew->MyPort.pfnGetMacAddress       = vboxNetFltPortGetMacAddress;
    822     pNew->MyPort.pfnIsHostMac           = vboxNetFltPortIsHostMac;
    823     pNew->MyPort.pfnIsPromiscuous       = vboxNetFltPortIsPromiscuous;
    824     pNew->MyPort.pfnXmit                = vboxNetFltPortXmit;
     838    pNew->MyPort.pfnRetain              = NETFLT_CALLBACK(vboxNetFltPortRetain);
     839    pNew->MyPort.pfnRelease             = NETFLT_CALLBACK(vboxNetFltPortRelease);
     840    pNew->MyPort.pfnDisconnectAndRelease= NETFLT_CALLBACK(vboxNetFltPortDisconnectAndRelease);
     841    pNew->MyPort.pfnSetActive           = NETFLT_CALLBACK(vboxNetFltPortSetActive);
     842    pNew->MyPort.pfnWaitForIdle         = NETFLT_CALLBACK(vboxNetFltPortWaitForIdle);
     843    pNew->MyPort.pfnGetMacAddress       = NETFLT_CALLBACK(vboxNetFltPortGetMacAddress);
     844    pNew->MyPort.pfnIsHostMac           = NETFLT_CALLBACK(vboxNetFltPortIsHostMac);
     845    pNew->MyPort.pfnIsPromiscuous       = NETFLT_CALLBACK(vboxNetFltPortIsPromiscuous);
     846    pNew->MyPort.pfnXmit                = NETFLT_CALLBACK(vboxNetFltPortXmit);
    825847    pNew->MyPort.u32VersionEnd          = INTNETTRUNKIFPORT_VERSION;
    826848    pNew->pSwitchPort                   = NULL;
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette