Changes

Jump to navigation Jump to search
241 bytes added ,  17:40, 28 January 2016
no edit summary
Line 5: Line 5:  
== Ports ==
 
== Ports ==
   −
Ports are globally accessible points exposed by the server using CreatePort. Clients can start IPC sessions by connect to a server through a port using ConnectToPort. On the client-side, a port is identified by a fixed string, while on the server-side it is represented by a kernel handle using which the server can wait for incoming connections (using svcWaitSynchronization on that handle).
+
Ports are IPC interfaces exposed by the server using CreatePort. Clients can start IPC sessions by connecting to a server through a port using ConnectToPort. On the client-side, a port is identified by a fixed string, while on the server-side it is represented by a kernel handle using which the server can wait for incoming connections (using svcWaitSynchronization on that handle). "Anonymous" ports can be created by not providing a port name to the kernel during creation. In this case, it is not possible to create a session through ConnectToPort - sessions can only be created if one has a handle to the port itself.
    
== Services ==
 
== Services ==
   −
Services are anonymous ports: They can not be connected to through ConnectToPort because they don't have any name recognized by that function. Instead, a service is registered to the [[Services|service manager]] port ("srv:") using the IPC command RegisterService. Clients then open sessions to services using the service manager command GetServiceHandle.
+
Services are an abstraction of ports that can not be connected to through ConnectToPort, as the underlying port is an anonymous port created by [[Services|service manager]]. Clients are instead expected to open a session using the service manager ("srv:") port command GetServiceHandle. A service is registered with service manager using the command RegisterService.
    
== Sessions ==
 
== Sessions ==
254

edits

Navigation menu