SVC: Difference between revisions
Misson20000 (talk | contribs) →svcWaitSynchronization Result codes: Add details for 0x7601 and 0xf601 |
→svcWaitSynchronization: improve notes |
||
Line 646: | Line 646: | ||
</div> | </div> | ||
Works with num_handles <= 0x40, | Works with num_handles <= 0x40. | ||
When zero handles are passed, this will wait forever until either timeout or cancellation occurs. | |||
Does not accept 0xFFFF8001 or 0xFFFF8000 as handles. | Does not accept 0xFFFF8001 or 0xFFFF8000 as handles. | ||
Line 653: | Line 655: | ||
'''Port:''' signals when there is an incoming connection waiting to be [[#svcAcceptSession|accepted]]. | '''Port:''' signals when there is an incoming connection waiting to be [[#svcAcceptSession|accepted]]. | ||
'''Process:''' signals when the process undergoes a state change (retrievable via [[#svcGetProcessInfo]]). | |||
'''ReadableEvent:''' signals when the event has been signaled via svcSignalEvent. | |||
'''Session (server-side):''' signals when there is an incoming message waiting to be [[#svcReplyAndReceive|received]] or the pipe is closed. | '''Session (server-side):''' signals when there is an incoming message waiting to be [[#svcReplyAndReceive|received]] or the pipe is closed. | ||
Line 658: | Line 664: | ||
=== Result codes === | === Result codes === | ||
'''0x0:''' Success. One of the objects was | '''0x0:''' Success. One of the objects was signaled before the timeout expired, or one of the objects is a Session with a closed remote. Handle index is updated to indicate which object signaled. | ||
'''0x7601:''' Thread termination requested. Handle index is not updated. | '''0x7601:''' Thread termination requested. Handle index is not updated. | ||
Line 664: | Line 670: | ||
'''0xe401:''' Invalid handle. Returned when one of the handles passed is invalid. Handle index is not updated. | '''0xe401:''' Invalid handle. Returned when one of the handles passed is invalid. Handle index is not updated. | ||
'''0xea01:''' Timeout. Returned when no objects have been | '''0xe601:''' Invalid address. Returned when the handles pointer is not a readable address. Handle index is not updated. | ||
'''0xea01:''' Timeout. Returned when no objects have been signaled within the timeout. Handle index is not updated. | |||
'''0xec01:''' Interrupted. Returned when another thread uses [[#svcCancelSynchronization]] to cancel this thread. Handle index is not updated. | '''0xec01:''' Interrupted. Returned when another thread uses [[#svcCancelSynchronization]] to cancel this thread. Handle index is not updated. | ||
''' | '''0xee01:''' Too many handles. Returned when the number of handles passed is > 0x40. | ||
== svcCancelSynchronization == | == svcCancelSynchronization == |