VirtualBox

Ignore:
Timestamp:
Dec 11, 2009 5:09:23 PM (15 years ago)
Author:
vboxsync
Message:

HostDrivers,SrvIntNetR0,iprt/ntwrap.mac: Removed all the RT_WITH_W64_UNWIND_HACK fun.

Location:
trunk/src/VBox/HostDrivers/Support/win
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp

    r25331 r25336  
    620620
    621621#ifdef VBOX_WITHOUT_NATIVE_R0_LOADER
     622# ifndef RT_ARCH_X86
     623#  error "VBOX_WITHOUT_NATIVE_R0_LOADER is only safe on x86."
     624# endif
    622625    NOREF(pDevExt); NOREF(pszFilename); NOREF(pImage);
    623626    return VERR_NOT_SUPPORTED;
     
    691694            {
    692695                case /* 0xc0000003 */ STATUS_INVALID_INFO_CLASS:
     696# ifdef RT_ARCH_AMD64
     697                    /* Unwind will crash and BSOD, so no fallback here! */
     698                    rc = VERR_NOT_IMPLEMENTED;
     699# else
    693700                    /*
    694                      * Use the old way of loading the modules if we can.  We do
    695                      * not try class 26 because it will not work correctly on
    696                      * terminal server and have issues with paging of the image.
     701                     * Use the old way of loading the modules.
    697702                     *
    698                      * Note! Using the 64-bit wrappers will require hacking the
    699                      *       image verfication in supdrvOSLdrLoad.
     703                     * Note! We do *NOT* try class 26 because it will probably
     704                     *       not work correctly on terminal servers and such.
    700705                     */
    701 # if !defined(RT_ARCH_AMD64) || defined(RT_WITH_W64_UNWIND_HACK)
    702706                    rc = VERR_NOT_SUPPORTED;
    703 # else
    704                     rc = VERR_NOT_IMPLEMENTED;
    705707# endif
    706708                    break;
     
    735737
    736738/**
    737  * memcmp + log. 
    738  * 
     739 * memcmp + log.
     740 *
    739741 * @returns Same as memcmp.
    740742 * @param   pImage          The image.
     
    806808                                     / sizeof(IMAGE_IMPORT_DESCRIPTOR);
    807809            IMAGE_IMPORT_DESCRIPTOR const *pImp;
    808             pImp = (IMAGE_IMPORT_DESCRIPTOR const *)(pbImageBits 
     810            pImp = (IMAGE_IMPORT_DESCRIPTOR const *)(pbImageBits
    809811                                                     + pNtHdrs->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);
    810812            while (   cImpsLeft-- > 0
  • trunk/src/VBox/HostDrivers/Support/win/SUPDrvA-win.asm

    r25274 r25336  
    55
    66;
    7 ; Copyright (C) 2006-2007 Sun Microsystems, Inc.
     7; Copyright (C) 2006-2009 Sun Microsystems, Inc.
    88;
    99; This file is part of VirtualBox Open Source Edition (OSE), as
     
    3232;* Header Files                                                                *
    3333;*******************************************************************************
    34 %include "iprt/ntwrap.mac"
     34%include "iprt/asmdefs.mac"
    3535
    3636BEGINCODE
    3737%ifdef RT_ARCH_AMD64
    38 %define _DbgPrint DbgPrint
     38 %define _DbgPrint DbgPrint
    3939%endif
    4040extern _DbgPrint
     
    4949%endif
    5050
    51 
    52 %ifdef RT_WITH_W64_UNWIND_HACK
    53  %ifdef RT_ARCH_AMD64
    54 
    55 ;
    56 ; This has the same order as the list in SUPDrv.c
    57 ;
    58 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0ComponentRegisterFactory
    59 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0ComponentDeregisterFactory
    60 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0ComponentQueryFactory
    61 NtWrapDyn2DrvFunctionWith5Params       supdrvNtWrap, SUPR0ObjRegister
    62 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0ObjAddRef
    63 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0ObjAddRefEx
    64 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0ObjRelease
    65 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0ObjVerifyAccess
    66 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0LockMem
    67 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0UnlockMem
    68 NtWrapDyn2DrvFunctionWith5Params       supdrvNtWrap, SUPR0ContAlloc
    69 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0ContFree
    70 NtWrapDyn2DrvFunctionWith5Params       supdrvNtWrap, SUPR0LowAlloc
    71 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0LowFree
    72 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0MemAlloc
    73 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0MemGetPhys
    74 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0MemFree
    75 NtWrapDyn2DrvFunctionWith6Params       supdrvNtWrap, SUPR0PageAllocEx
    76 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0PageFree
    77 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0Printf            - cannot wrap this buster.
    78 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPSemEventCreate
    79 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPSemEventClose
    80 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPSemEventSignal
    81 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPSemEventWait
    82 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPSemEventWaitNoResume
    83 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPSemEventMultiCreate
    84 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPSemEventMultiClose
    85 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPSemEventMultiSignal
    86 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPSemEventMultiReset
    87 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPSemEventMultiWait
    88 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPSemEventMultiWaitNoResume
    89 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, SUPR0GetPagingMode
    90 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMemAlloc
    91 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMemAllocZ
    92 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMemFree
    93 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMemDup
    94 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMemDupEx
    95 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMemRealloc
    96 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemObjAllocLow
    97 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemObjAllocPage
    98 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemObjAllocPhys
    99 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemObjAllocPhysNC
    100 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemObjAllocCont
    101 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemObjEnterPhys
    102 NtWrapDyn2DrvFunctionWith5Params       supdrvNtWrap, RTR0MemObjLockUser
    103 NtWrapDyn2DrvFunctionWith5Params       supdrvNtWrap, RTR0MemObjMapKernel
    104 NtWrapDyn2DrvFunctionWith7Params       supdrvNtWrap, RTR0MemObjMapKernelEx
    105 NtWrapDyn2DrvFunctionWith6Params       supdrvNtWrap, RTR0MemObjMapUser
    106 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemObjProtect
    107 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemObjAddress      - not necessary
    108 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemObjAddressR3    - not necessary
    109 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemObjSize         - not necessary
    110 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemObjIsMapping    - not necessary
    111 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemObjGetPagePhysAddr - not necessary
    112 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemObjFree
    113 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemUserCopyFrom
    114 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemUserCopyTo
    115 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemUserIsValidAddr - not necessary
    116 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemKernelIsValidAdd - not necessary
    117 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0MemAreKrnlAndUsrDifferent - not necessary
    118 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTProcSelf             - not necessary
    119 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTR0ProcHandleSelf     - not necessary
    120 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSemFastMutexCreate
    121 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSemFastMutexDestroy
    122 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSemFastMutexRequest
    123 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSemFastMutexRelease
    124 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSemEventCreate
    125 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSemEventSignal
    126 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSemEventWait
    127 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSemEventWaitNoResume
    128 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSemEventDestroy
    129 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSemEventMultiCreate
    130 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSemEventMultiSignal
    131 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSemEventMultiReset
    132 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSemEventMultiWait
    133 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSemEventMultiWaitNoResume
    134 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSemEventMultiDestroy
    135 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSpinlockCreate
    136 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSpinlockDestroy
    137 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSpinlockAcquire
    138 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSpinlockRelease
    139 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSpinlockAcquireNoInts
    140 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTSpinlockReleaseNoInts
    141 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTTimeNanoTS           - not necessary
    142 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTTimeMilliTS          - not necessary
    143 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTTimeSystemNanoTS     - not necessary
    144 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTTimeSystemMilliTS    - not necessary
    145 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadNativeSelf     - not necessary
    146 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadSleep
    147 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadYield
    148 %if 0 ; Thread APIs, Part 2
    149 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadSelf
    150 NtWrapDyn2DrvFunctionWith7Params       supdrvNtWrap, RTThreadCreate
    151 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadGetNative
    152 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadWait
    153 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadWaitNoResume
    154 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadGetName
    155 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadSelfName
    156 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadGetType
    157 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadUserSignal
    158 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadUserReset
    159 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadUserWait
    160 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadUserWaitNoResume
    161 %endif
    162 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadPreemptIsEnabled - not necessary
    163 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadPreemptIsPending - not necessary
    164 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadPreemptIsPendingTrusty - not necessary
    165 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadPreemptDisable
    166 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTThreadPreemptRestore
    167 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTLogDefaultInstance   - a bit of a gamble, but we do not want the overhead!
    168 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMpCpuId              - not necessary
    169 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMpCpuIdFromSetIndex  - not necessary
    170 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMpCpuIdToSetIndex    - not necessary
    171 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMpIsCpuPossible      - not necessary
    172 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMpGetCount           - not necessary
    173 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMpGetMaxCpuId        - not necessary
    174 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMpGetOnlineCount     - not necessary
    175 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMpGetOnlineSet       - not necessary
    176 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMpGetSet             - not necessary
    177 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMpIsCpuOnline        - not necessary
    178 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMpIsCpuWorkPending
    179 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMpOnAll
    180 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMpOnOthers
    181 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMpOnSpecific
    182 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTMpPokeCpu
    183 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTLogRelDefaultInstance - not necessary.
    184 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTLogSetDefaultInstanceThread
    185 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTLogLogger            - can't wrap this buster.
    186 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTLogLoggerEx          - can't wrap this buster.
    187 NtWrapDyn2DrvFunctionWith5Params       supdrvNtWrap, RTLogLoggerExV
    188 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTLogPrintf            - can't wrap this buster. ;; @todo provide va_list log wrappers in RuntimeR0.
    189 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, RTLogPrintfV
    190 NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, AssertMsg1
    191 ;NtWrapDyn2DrvFunctionWithAllRegParams  supdrvNtWrap, AssertMsg2             - can't wrap this buster.
    192 NtWrapDrv2DynFunctionWithAllRegParams   supdrvNtWrap, RTPowerSignalEvent
    193 
    194 
    195 ;;
    196 ; @cproto DECLASM(int) supdrvNtWrapVMMR0EntryEx(PFNRT pfnVMMR0EntryEx, PVM pVM, unsigned idCpu, unsigned uOperation, PSUPVMMR0REQHDR pReq, uint64_t u64Arg, PSUPDRVSESSION pSession);
    197 ;
    198 ; @param    pfnVMMR0EntryEx     rcx
    199 ; @param    pVM                 rdx
    200 ; @param    idCpu               r8
    201 ; @param    uOperation          r9
    202 ; @param    pReq                [rsp + 28h] / [rbp + 30h]
    203 ; @param    u64Arg              [rsp + 30h] / [rbp + 38h]
    204 ; @param    pSession            [rsp + 38h] / [rbp + 40h]
    205 ;
    206 BEGINPROC supdrvNtWrapVMMR0EntryEx
    207         NtWrapProlog supdrvNtWrapVMMR0EntryEx
    208         NtWrapCreateMarker
    209 
    210         mov     rax, rcx
    211         mov     rcx, rdx
    212         mov     rdx, r8
    213         mov     r8, r9
    214         mov     r9, [rbp + 30h]
    215         mov     r11, [rbp + 38h]
    216         mov     [rsp + 20h], r11
    217         mov     r11, [rbp + 40h]
    218         mov     [rsp + 28h], r11
    219         call    rax
    220 
    221         NtWrapDestroyMarker
    222         NtWrapEpilog supdrvNtWrapVMMR0EntryEx
    223 ENDPROC   supdrvNtWrapVMMR0EntryEx
    224 
    225 
    226 ;;
    227 ; @cproto DECLASM(int)    supdrvNtWrapVMMR0EntryFast(PFNRT pfnVMMR0EntryFast, PVM pVM, unsigned idCPU, unsigned uOperation);
    228 ;
    229 ; @param    pfnVMMR0EntryFast   rcx
    230 ; @param    pVM                 rdx
    231 ; @param    idCPU               r8
    232 ; @param    uOperation          r9
    233 ;
    234 BEGINPROC supdrvNtWrapVMMR0EntryFast
    235         NtWrapProlog supdrvNtWrapVMMR0EntryFast
    236         NtWrapCreateMarker
    237 
    238         mov     rax, rcx
    239         mov     rcx, rdx
    240         mov     rdx, r8
    241         mov     r8, r9
    242         call    rax
    243 
    244         NtWrapDestroyMarker
    245         NtWrapEpilog supdrvNtWrapVMMR0EntryFast
    246 ENDPROC   supdrvNtWrapVMMR0EntryFast
    247 
    248 
    249 ;;
    250 ; @cproto DECLASM(void)   supdrvNtWrapObjDestructor(PFNRT pfnDestruction, void *pvObj, void *pvUser1, void *pvUser2);
    251 ;
    252 ; @param    pfnDestruction      rcx
    253 ; @param    pvObj               rdx
    254 ; @param    pvUser1             r8
    255 ; @param    pvUser2             r9
    256 ;
    257 BEGINPROC supdrvNtWrapObjDestructor
    258         NtWrapProlog supdrvNtWrapObjDestructor
    259         NtWrapCreateMarker
    260 
    261         mov     rax, rcx
    262         mov     rcx, rdx
    263         mov     rdx, r8
    264         mov     r8, r9
    265         call    rax
    266 
    267         NtWrapDestroyMarker
    268         NtWrapEpilog supdrvNtWrapObjDestructor
    269 ENDPROC   supdrvNtWrapObjDestructor
    270 
    271 
    272 ;;
    273 ; @cproto DECLASM(void *) supdrvNtWrapQueryFactoryInterface(PFNRT pfnQueryFactoryInterface, struct SUPDRVFACTORY const *pSupDrvFactory,
    274 ;                                                           PSUPDRVSESSION pSession, const char *pszInterfaceUuid);
    275 ;
    276 ; @param    pfnQueryFactoryInterface    rcx
    277 ; @param    pSupDrvFactory      rdx
    278 ; @param    pSession            r8
    279 ; @param    pszInterfaceUuid    r9
    280 ;
    281 BEGINPROC supdrvNtWrapQueryFactoryInterface
    282         NtWrapProlog supdrvNtWrapQueryFactoryInterface
    283         NtWrapCreateMarker
    284 
    285         mov     rax, rcx
    286         mov     rcx, rdx
    287         mov     rdx, r8
    288         mov     r8, r9
    289         call    rax
    290 
    291         NtWrapDestroyMarker
    292         NtWrapEpilog supdrvNtWrapQueryFactoryInterface
    293 ENDPROC   supdrvNtWrapQueryFactoryInterface
    294 
    295 
    296 ;;
    297 ; @cproto DECLASM(int)    supdrvNtWrapModuleInit(PFNRT pfnModuleInit);
    298 ;
    299 ; @param    pfnModuleInit       rcx
    300 ;
    301 BEGINPROC supdrvNtWrapModuleInit
    302         NtWrapProlog supdrvNtWrapModuleInit
    303         NtWrapCreateMarker
    304 
    305         call    rcx
    306 
    307         NtWrapDestroyMarker
    308         NtWrapEpilog supdrvNtWrapModuleInit
    309 ENDPROC   supdrvNtWrapModuleInit
    310 
    311 
    312 ;;
    313 ; @cproto DECLASM(void)   supdrvNtWrapModuleTerm(PFNRT pfnModuleTerm);
    314 ;
    315 ; @param    pfnModuleInit       rcx
    316 ;
    317 BEGINPROC supdrvNtWrapModuleTerm
    318         NtWrapProlog supdrvNtWrapModuleTerm
    319         NtWrapCreateMarker
    320 
    321         call    rcx
    322 
    323         NtWrapDestroyMarker
    324         NtWrapEpilog supdrvNtWrapModuleTerm
    325 ENDPROC   supdrvNtWrapModuleTerm
    326 
    327 
    328 ;;
    329 ; @cproto DECLASM(int) supdrvNtWrapServiceReqHandler(PFNRT pfnServiceReqHandler, PSUPDRVSESSION pSession, uint32_t uOperation, uint64_t u64Arg, PSUPR0SERVICEREQHDR pReqHdr);
    330 ;
    331 ; @param    pfnSerivceReqHandler rcx
    332 ; @param    pSession            rdx
    333 ; @param    uOperation          r8
    334 ; @param    u64Arg              r9
    335 ; @param    pReq                [rsp + 28h] / [rbp + 30h]
    336 ;
    337 BEGINPROC supdrvNtWrapServiceReqHandler
    338         NtWrapProlog supdrvNtWrapServiceReqHandler
    339         NtWrapCreateMarker
    340 
    341         mov     rax, rcx
    342         mov     rcx, rdx
    343         mov     rdx, r8
    344         mov     r8, r9
    345         mov     r9, [rbp + 30h]
    346         call    rax
    347 
    348         NtWrapDestroyMarker
    349         NtWrapEpilog supdrvNtWrapServiceReqHandler
    350 ENDPROC   supdrvNtWrapServiceReqHandler
    351 
    352 
    353  %endif ; RT_ARCH_AMD64
    354 %endif ; RT_WITH_W64_UNWIND_HACK
    355 
Note: See TracChangeset for help on using the changeset viewer.

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