This document describes how to complete a request for a service.
If you are a service provider, you can complete a request using either User::RequestComplete()
,
or RThread::RequestComplete()
, passing the request status
object and the service provider's return code, a value other than KRequestPending
.
This results in the active object's iStatus
member being
set to the return code value and a signal that the request is complete.
The current thread calls User::RequestComplete()
to complete
a request that originated in the current thread.
The current thread calls RThread::RequestComplete()
to
complete a request that originated in a different thread, i.e. the thread
represented by the RThread
object. Note that in this case,
the target thread must be in the same process as the current thread.
Any attempt to complete a request on a thread in another process is a security
violation, resulting in a KERN-EXEC 46 panic.