Changes

172 bytes removed ,  19:10, 26 September 2017
no edit summary
Line 56: Line 56:     
Sysmodules load the last u64 of rawdata when handling the PID. This is not written by kernel. For sysmodule handling:
 
Sysmodules load the last u64 of rawdata when handling the PID. This is not written by kernel. For sysmodule handling:
* In some cases: The rawdata_u64 is written to stack as the initial PID, but this is never used since the get-pid function always overwrites the output PID when it returns retval 0.
+
* In some cases: these commands require a placeholder u64 value passed in the input parameters, as mentioned above. In these cases the OverwriteClientProcessId method is called to replace the value before it is used.
 
* In other cases: The rawdata_u64 is compared with the PID from the descriptor. On mismatch and when rawdata_u64!=0, error 0x60A is returned. The PID value passed to the cmdhandler vtable funcptr is the rawdata_u64.
 
* In other cases: The rawdata_u64 is compared with the PID from the descriptor. On mismatch and when rawdata_u64!=0, error 0x60A is returned. The PID value passed to the cmdhandler vtable funcptr is the rawdata_u64.
   Line 173: Line 173:  
| 4... || Input parameters or return values
 
| 4... || Input parameters or return values
 
|}
 
|}
  −
Many messages which require the PID also require a placeholder u64 value passed in the input parameters. In these cases the OverwriteClientProcessId method is called to replace the value before it is used.
      
== Official marshalling code ==
 
== Official marshalling code ==