Changeset 5247 for trunk/src/win32k/dev32/d32CallGate.asm
- Timestamp:
- Feb 23, 2001, 3:57:55 AM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/win32k/dev32/d32CallGate.asm
r5224 r5247 1 ; $Id: d32CallGate.asm,v 1. 2 2001-02-21 07:44:57bird Exp $1 ; $Id: d32CallGate.asm,v 1.3 2001-02-23 02:57:53 bird Exp $ 2 2 ; 3 3 ; 32-bit CallGate used to communitcate fast between Ring-3 and Ring-0. … … 50 50 extrn k32SetOptions:near 51 51 extrn k32ProcessReadWrite:near 52 ;extrn k32HandleSystemEvent:near52 extrn k32HandleSystemEvent:near 53 53 extrn k32QuerySystemMemInfo:near 54 54 extrn k32QueryCallGate:near … … 96 96 dd FLAT:k32SetOptions ; K32_SETOPTIONS 0x04 97 97 dd FLAT:k32ProcessReadWrite ; K32_PROCESSREADWRITE 0x05 98 ;dd FLAT:k32HandleSystemEvent ; K32_HANDLESYSTEMEVENT 0x06 99 dd FLAT:k32APIStub 98 dd FLAT:k32HandleSystemEvent ; K32_HANDLESYSTEMEVENT 0x06 100 99 dd FLAT:k32QuerySystemMemInfo ; K32_QUERYSYSTEMMEMINFO 0x07 101 100 dd FLAT:k32QueryCallGate ; K32_QUERYCALLGATE 0x08 … … 257 256 mov eax, [esp + 44h] ; ulFunctionCode (parameter 2) 258 257 sub esp, 8h ; (Even when using _Oplink we have to reserve space for parameters.) 259 call Win32kAPIRouter ; This is my Ring-0 api . (d32Win32kIOCtl.c)258 call Win32kAPIRouter ; This is my Ring-0 api router. 260 259 add esp, 8h 261 260 … … 287 286 ; Validate function number. 288 287 ; 289 cmp eax, 0290 jn eAPIR_notnull ; This code should be faster (though it may look stupid to288 test eax,eax 289 jnz APIR_notnull ; This code should be faster (though it may look stupid to 291 290 ; jump around like this). IIRC branch prediction allways 292 291 ; takes a branch. And btw there are 4 NOPs after this jump! … … 310 309 mov ecx, acbK32Params[eax*4] ; ecx <- size of parameter packet. 311 310 sub esp, ecx ; Reserve stack space for the parameter packet. 312 mov eax, [pulTKSSBase32] 311 mov eax, [pulTKSSBase32] ; Calculate the FLAT address of esp. 313 312 mov eax, [eax] 314 add eax, esp ; Calculate the FLAT address of esp.313 add eax, esp ; eax <- flat address of ss:esp 315 314 push ecx ; Save the size. 316 315 ; TKFuBuff(pv, pvParam, acbParams[ulFunction], TK_FUSU_NONFATAL);
Note:
See TracChangeset
for help on using the changeset viewer.