Changeset 25336 in vbox for trunk/src/VBox/HostDrivers/Support/win
- Timestamp:
- Dec 11, 2009 5:09:23 PM (15 years ago)
- 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 620 620 621 621 #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 622 625 NOREF(pDevExt); NOREF(pszFilename); NOREF(pImage); 623 626 return VERR_NOT_SUPPORTED; … … 691 694 { 692 695 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 693 700 /* 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. 697 702 * 698 * Note! Using the 64-bit wrappers will require hacking the699 * 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. 700 705 */ 701 # if !defined(RT_ARCH_AMD64) || defined(RT_WITH_W64_UNWIND_HACK)702 706 rc = VERR_NOT_SUPPORTED; 703 # else704 rc = VERR_NOT_IMPLEMENTED;705 707 # endif 706 708 break; … … 735 737 736 738 /** 737 * memcmp + log. 738 * 739 * memcmp + log. 740 * 739 741 * @returns Same as memcmp. 740 742 * @param pImage The image. … … 806 808 / sizeof(IMAGE_IMPORT_DESCRIPTOR); 807 809 IMAGE_IMPORT_DESCRIPTOR const *pImp; 808 pImp = (IMAGE_IMPORT_DESCRIPTOR const *)(pbImageBits 810 pImp = (IMAGE_IMPORT_DESCRIPTOR const *)(pbImageBits 809 811 + pNtHdrs->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress); 810 812 while ( cImpsLeft-- > 0 -
trunk/src/VBox/HostDrivers/Support/win/SUPDrvA-win.asm
r25274 r25336 5 5 6 6 ; 7 ; Copyright (C) 2006-200 7Sun Microsystems, Inc.7 ; Copyright (C) 2006-2009 Sun Microsystems, Inc. 8 8 ; 9 9 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 32 32 ;* Header Files * 33 33 ;******************************************************************************* 34 %include "iprt/ ntwrap.mac"34 %include "iprt/asmdefs.mac" 35 35 36 36 BEGINCODE 37 37 %ifdef RT_ARCH_AMD64 38 %define _DbgPrint DbgPrint38 %define _DbgPrint DbgPrint 39 39 %endif 40 40 extern _DbgPrint … … 49 49 %endif 50 50 51 52 %ifdef RT_WITH_W64_UNWIND_HACK53 %ifdef RT_ARCH_AMD6454 55 ;56 ; This has the same order as the list in SUPDrv.c57 ;58 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0ComponentRegisterFactory59 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0ComponentDeregisterFactory60 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0ComponentQueryFactory61 NtWrapDyn2DrvFunctionWith5Params supdrvNtWrap, SUPR0ObjRegister62 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0ObjAddRef63 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0ObjAddRefEx64 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0ObjRelease65 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0ObjVerifyAccess66 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0LockMem67 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0UnlockMem68 NtWrapDyn2DrvFunctionWith5Params supdrvNtWrap, SUPR0ContAlloc69 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0ContFree70 NtWrapDyn2DrvFunctionWith5Params supdrvNtWrap, SUPR0LowAlloc71 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0LowFree72 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0MemAlloc73 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0MemGetPhys74 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0MemFree75 NtWrapDyn2DrvFunctionWith6Params supdrvNtWrap, SUPR0PageAllocEx76 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0PageFree77 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0Printf - cannot wrap this buster.78 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPSemEventCreate79 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPSemEventClose80 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPSemEventSignal81 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPSemEventWait82 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPSemEventWaitNoResume83 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPSemEventMultiCreate84 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPSemEventMultiClose85 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPSemEventMultiSignal86 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPSemEventMultiReset87 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPSemEventMultiWait88 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPSemEventMultiWaitNoResume89 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, SUPR0GetPagingMode90 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMemAlloc91 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMemAllocZ92 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMemFree93 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMemDup94 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMemDupEx95 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMemRealloc96 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemObjAllocLow97 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemObjAllocPage98 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemObjAllocPhys99 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemObjAllocPhysNC100 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemObjAllocCont101 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemObjEnterPhys102 NtWrapDyn2DrvFunctionWith5Params supdrvNtWrap, RTR0MemObjLockUser103 NtWrapDyn2DrvFunctionWith5Params supdrvNtWrap, RTR0MemObjMapKernel104 NtWrapDyn2DrvFunctionWith7Params supdrvNtWrap, RTR0MemObjMapKernelEx105 NtWrapDyn2DrvFunctionWith6Params supdrvNtWrap, RTR0MemObjMapUser106 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemObjProtect107 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemObjAddress - not necessary108 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemObjAddressR3 - not necessary109 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemObjSize - not necessary110 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemObjIsMapping - not necessary111 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemObjGetPagePhysAddr - not necessary112 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemObjFree113 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemUserCopyFrom114 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemUserCopyTo115 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemUserIsValidAddr - not necessary116 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemKernelIsValidAdd - not necessary117 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0MemAreKrnlAndUsrDifferent - not necessary118 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTProcSelf - not necessary119 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTR0ProcHandleSelf - not necessary120 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSemFastMutexCreate121 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSemFastMutexDestroy122 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSemFastMutexRequest123 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSemFastMutexRelease124 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSemEventCreate125 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSemEventSignal126 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSemEventWait127 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSemEventWaitNoResume128 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSemEventDestroy129 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSemEventMultiCreate130 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSemEventMultiSignal131 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSemEventMultiReset132 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSemEventMultiWait133 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSemEventMultiWaitNoResume134 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSemEventMultiDestroy135 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSpinlockCreate136 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSpinlockDestroy137 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSpinlockAcquire138 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSpinlockRelease139 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSpinlockAcquireNoInts140 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTSpinlockReleaseNoInts141 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTTimeNanoTS - not necessary142 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTTimeMilliTS - not necessary143 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTTimeSystemNanoTS - not necessary144 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTTimeSystemMilliTS - not necessary145 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadNativeSelf - not necessary146 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadSleep147 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadYield148 %if 0 ; Thread APIs, Part 2149 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadSelf150 NtWrapDyn2DrvFunctionWith7Params supdrvNtWrap, RTThreadCreate151 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadGetNative152 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadWait153 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadWaitNoResume154 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadGetName155 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadSelfName156 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadGetType157 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadUserSignal158 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadUserReset159 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadUserWait160 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadUserWaitNoResume161 %endif162 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadPreemptIsEnabled - not necessary163 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadPreemptIsPending - not necessary164 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadPreemptIsPendingTrusty - not necessary165 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadPreemptDisable166 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTThreadPreemptRestore167 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTLogDefaultInstance - a bit of a gamble, but we do not want the overhead!168 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMpCpuId - not necessary169 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMpCpuIdFromSetIndex - not necessary170 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMpCpuIdToSetIndex - not necessary171 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMpIsCpuPossible - not necessary172 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMpGetCount - not necessary173 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMpGetMaxCpuId - not necessary174 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMpGetOnlineCount - not necessary175 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMpGetOnlineSet - not necessary176 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMpGetSet - not necessary177 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMpIsCpuOnline - not necessary178 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMpIsCpuWorkPending179 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMpOnAll180 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMpOnOthers181 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMpOnSpecific182 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTMpPokeCpu183 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTLogRelDefaultInstance - not necessary.184 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTLogSetDefaultInstanceThread185 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTLogLogger - can't wrap this buster.186 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTLogLoggerEx - can't wrap this buster.187 NtWrapDyn2DrvFunctionWith5Params supdrvNtWrap, RTLogLoggerExV188 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTLogPrintf - can't wrap this buster. ;; @todo provide va_list log wrappers in RuntimeR0.189 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, RTLogPrintfV190 NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, AssertMsg1191 ;NtWrapDyn2DrvFunctionWithAllRegParams supdrvNtWrap, AssertMsg2 - can't wrap this buster.192 NtWrapDrv2DynFunctionWithAllRegParams supdrvNtWrap, RTPowerSignalEvent193 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 rcx199 ; @param pVM rdx200 ; @param idCpu r8201 ; @param uOperation r9202 ; @param pReq [rsp + 28h] / [rbp + 30h]203 ; @param u64Arg [rsp + 30h] / [rbp + 38h]204 ; @param pSession [rsp + 38h] / [rbp + 40h]205 ;206 BEGINPROC supdrvNtWrapVMMR0EntryEx207 NtWrapProlog supdrvNtWrapVMMR0EntryEx208 NtWrapCreateMarker209 210 mov rax, rcx211 mov rcx, rdx212 mov rdx, r8213 mov r8, r9214 mov r9, [rbp + 30h]215 mov r11, [rbp + 38h]216 mov [rsp + 20h], r11217 mov r11, [rbp + 40h]218 mov [rsp + 28h], r11219 call rax220 221 NtWrapDestroyMarker222 NtWrapEpilog supdrvNtWrapVMMR0EntryEx223 ENDPROC supdrvNtWrapVMMR0EntryEx224 225 226 ;;227 ; @cproto DECLASM(int) supdrvNtWrapVMMR0EntryFast(PFNRT pfnVMMR0EntryFast, PVM pVM, unsigned idCPU, unsigned uOperation);228 ;229 ; @param pfnVMMR0EntryFast rcx230 ; @param pVM rdx231 ; @param idCPU r8232 ; @param uOperation r9233 ;234 BEGINPROC supdrvNtWrapVMMR0EntryFast235 NtWrapProlog supdrvNtWrapVMMR0EntryFast236 NtWrapCreateMarker237 238 mov rax, rcx239 mov rcx, rdx240 mov rdx, r8241 mov r8, r9242 call rax243 244 NtWrapDestroyMarker245 NtWrapEpilog supdrvNtWrapVMMR0EntryFast246 ENDPROC supdrvNtWrapVMMR0EntryFast247 248 249 ;;250 ; @cproto DECLASM(void) supdrvNtWrapObjDestructor(PFNRT pfnDestruction, void *pvObj, void *pvUser1, void *pvUser2);251 ;252 ; @param pfnDestruction rcx253 ; @param pvObj rdx254 ; @param pvUser1 r8255 ; @param pvUser2 r9256 ;257 BEGINPROC supdrvNtWrapObjDestructor258 NtWrapProlog supdrvNtWrapObjDestructor259 NtWrapCreateMarker260 261 mov rax, rcx262 mov rcx, rdx263 mov rdx, r8264 mov r8, r9265 call rax266 267 NtWrapDestroyMarker268 NtWrapEpilog supdrvNtWrapObjDestructor269 ENDPROC supdrvNtWrapObjDestructor270 271 272 ;;273 ; @cproto DECLASM(void *) supdrvNtWrapQueryFactoryInterface(PFNRT pfnQueryFactoryInterface, struct SUPDRVFACTORY const *pSupDrvFactory,274 ; PSUPDRVSESSION pSession, const char *pszInterfaceUuid);275 ;276 ; @param pfnQueryFactoryInterface rcx277 ; @param pSupDrvFactory rdx278 ; @param pSession r8279 ; @param pszInterfaceUuid r9280 ;281 BEGINPROC supdrvNtWrapQueryFactoryInterface282 NtWrapProlog supdrvNtWrapQueryFactoryInterface283 NtWrapCreateMarker284 285 mov rax, rcx286 mov rcx, rdx287 mov rdx, r8288 mov r8, r9289 call rax290 291 NtWrapDestroyMarker292 NtWrapEpilog supdrvNtWrapQueryFactoryInterface293 ENDPROC supdrvNtWrapQueryFactoryInterface294 295 296 ;;297 ; @cproto DECLASM(int) supdrvNtWrapModuleInit(PFNRT pfnModuleInit);298 ;299 ; @param pfnModuleInit rcx300 ;301 BEGINPROC supdrvNtWrapModuleInit302 NtWrapProlog supdrvNtWrapModuleInit303 NtWrapCreateMarker304 305 call rcx306 307 NtWrapDestroyMarker308 NtWrapEpilog supdrvNtWrapModuleInit309 ENDPROC supdrvNtWrapModuleInit310 311 312 ;;313 ; @cproto DECLASM(void) supdrvNtWrapModuleTerm(PFNRT pfnModuleTerm);314 ;315 ; @param pfnModuleInit rcx316 ;317 BEGINPROC supdrvNtWrapModuleTerm318 NtWrapProlog supdrvNtWrapModuleTerm319 NtWrapCreateMarker320 321 call rcx322 323 NtWrapDestroyMarker324 NtWrapEpilog supdrvNtWrapModuleTerm325 ENDPROC supdrvNtWrapModuleTerm326 327 328 ;;329 ; @cproto DECLASM(int) supdrvNtWrapServiceReqHandler(PFNRT pfnServiceReqHandler, PSUPDRVSESSION pSession, uint32_t uOperation, uint64_t u64Arg, PSUPR0SERVICEREQHDR pReqHdr);330 ;331 ; @param pfnSerivceReqHandler rcx332 ; @param pSession rdx333 ; @param uOperation r8334 ; @param u64Arg r9335 ; @param pReq [rsp + 28h] / [rbp + 30h]336 ;337 BEGINPROC supdrvNtWrapServiceReqHandler338 NtWrapProlog supdrvNtWrapServiceReqHandler339 NtWrapCreateMarker340 341 mov rax, rcx342 mov rcx, rdx343 mov rdx, r8344 mov r8, r9345 mov r9, [rbp + 30h]346 call rax347 348 NtWrapDestroyMarker349 NtWrapEpilog supdrvNtWrapServiceReqHandler350 ENDPROC supdrvNtWrapServiceReqHandler351 352 353 %endif ; RT_ARCH_AMD64354 %endif ; RT_WITH_W64_UNWIND_HACK355
Note:
See TracChangeset
for help on using the changeset viewer.