Display services: Difference between revisions

is hdcp even allowed with tsec broken? is key revocation ever happening?
(5 intermediate revisions by 2 users not shown)
Line 8: Line 8:
! Cmd || Name || Notes
! Cmd || Name || Notes
|-
|-
| 1 || CaptureRawImage ||  
| 1 || [[#CaptureRawImage]] ||  
|-
|-
| 2 || CaptureRawImageWithTimeout ||  
| 2 || [[#CaptureRawImageWithTimeout]] ||  
|-
|-
| 3 || [5.0.0+] AttachSharedBuffer || Takes a total of 8-bytes of input, no output.
| 3 || [5.0.0+] AttachSharedBuffer || Takes a total of 8-bytes of input, no output.
Line 34: Line 34:
| 1012 || NotifyTakingScreenShotFailed || Takes a total of 8-bytes of input, no output.
| 1012 || NotifyTakingScreenShotFailed || Takes a total of 8-bytes of input, no output.
|-
|-
| 1101 || [4.0.0+] SetupOverlayMovieThumbnail ||  
| 1101 || [4.0.0+] [[#SetupOverlayMovieThumbnail]] ||  
|-
|-
| 1106 || [4.0.0+] ? ||  
| 1106 || [4.0.0+] ? ||  
Line 45: Line 45:
|-
|-
| 1203 || [3.0.0+] ReadRawScreenShotReadStream || Takes a total of 8-bytes of input and a type-0x6 output buffer, returns a total of 8-bytes of output.
| 1203 || [3.0.0+] ReadRawScreenShotReadStream || Takes a total of 8-bytes of input and a type-0x6 output buffer, returns a total of 8-bytes of output.
|-
| 1204 || [9.0.0+] || Takes a total of 0x10-bytes of input and a type-0x46 output buffer, returns a total of 8-bytes of output.
|}
|}


Line 55: Line 57:
[8.0.0+] Cmd210 and cmd1004 now takes an additional type-0x15 input buffer.
[8.0.0+] Cmd210 and cmd1004 now takes an additional type-0x15 input buffer.


== Cmd1 ==
== CaptureRawImage ==
Takes a type-0x46 output buffer, an input u32 '''layer_stack''', two input u64s '''width'''/'''height''', an input s64 '''buffer_count''', and an input s64 '''buffer_index'''.
Takes a type-0x46 output buffer, an input u32 '''layer_stack''', two input u64s '''width'''/'''height''', an input s64 '''buffer_count''', and an input s64 '''buffer_index'''.


Line 68: Line 70:
Stubbed with [5.0.0+], where it now returns error 0x7FECE.
Stubbed with [5.0.0+], where it now returns error 0x7FECE.


== Cmd2 ==
== CaptureRawImageWithTimeout ==
Calls the same internal func as cmd1, where the last param is an additional cmd input u64 instead of hard-coded value 0x5f5e100.
Calls the same internal func as [[#CaptureRawImage]], where the last param is an additional cmd input u64 instead of hard-coded value 0x5f5e100.


Stubbed with [5.0.0+], where it now returns error 0x7FECE.
Stubbed with [5.0.0+], where it now returns error 0x7FECE.


== Cmd1101 ==
== SetupOverlayMovieThumbnail ==
Takes two input u64s '''width'''/'''height''', a 0x18-byte input struct, and two type-0x46 output buffers.
Takes two input u64s '''width'''/'''height''', a 0x18-byte input struct, and two type-0x46 output buffers.


Line 85: Line 87:
Takes a 0x40-byte input struct, two input u64s '''width'''/'''height''', a 0x18-byte input struct, two type-0x15 input buffers, a type-0x6 output buffer, and two type-0x46 output buffers, returns 3 output u64s.
Takes a 0x40-byte input struct, two input u64s '''width'''/'''height''', a 0x18-byte input struct, two type-0x15 input buffers, a type-0x6 output buffer, and two type-0x46 output buffers, returns 3 output u64s.


'''width'''/'''height''' have same requirements as [[#Cmd1101]]. The size of the type-0x6 buffer must be at least 0x7D000. The requirements for the type-0x46 buffers are the same as [[#Cmd1101]].
'''width'''/'''height''' have same requirements as [[#SetupOverlayMovieThumbnail]]. The size of the type-0x6 buffer must be at least 0x7D000. The requirements for the type-0x46 buffers are the same as [[#SetupOverlayMovieThumbnail]].


[5.0.0+] Now takes a total of 0x68-bytes of input instead of 0x30.
[5.0.0+] Now takes a total of 0x68-bytes of input instead of 0x30.
Line 92: Line 94:
Takes a 0x40-byte input struct, two input u64s '''width'''/'''height''', a 0x18-byte input struct, two type-0x15 input buffers, a type-0x6 output buffer, and a type-0x45 input buffer, returns 3 output u64s.
Takes a 0x40-byte input struct, two input u64s '''width'''/'''height''', a 0x18-byte input struct, two type-0x15 input buffers, a type-0x6 output buffer, and a type-0x45 input buffer, returns 3 output u64s.


'''width'''/'''height''' have same requirements as [[#Cmd1101]]. The size of the type-0x6 buffer must be at least 0x7D000. The size of the type-0x45 buffer must be at least 0x384000.
'''width'''/'''height''' have same requirements as [[#SetupOverlayMovieThumbnail]]. The size of the type-0x6 buffer must be at least 0x7D000. The size of the type-0x45 buffer must be at least 0x384000.


[5.0.0+] Now takes a total of 0x68-bytes of input instead of 0x30.
[5.0.0+] Now takes a total of 0x68-bytes of input instead of 0x30.
Line 110: Line 112:
|-
|-
| 204 || [3.0.0+] SaveEditedScreenShotEx0
| 204 || [3.0.0+] SaveEditedScreenShotEx0
|-
| 206 || [?+]
|-
|-
| 208 || [5.0.0+] SaveScreenShotOfMovieEx1
| 208 || [5.0.0+] SaveScreenShotOfMovieEx1
Line 207: Line 211:
| 0 || [[#vi:u|GetDisplayService]]
| 0 || [[#vi:u|GetDisplayService]]
|-
|-
| 1 || [9.0.0+] [[#vi:u|GetDisplayServiceWithProxyNameExchange]]
|}
|}


== GetDisplayService ==
== GetDisplayService ==
Returns an [[#IApplicationDisplayService]]. Takes an input u32, user-processes use 0 or 1, with 0 for regular-applications normally. 0 = user-service(vi:u), 1 = system/manager service (vi:s/vi:m). Returns an error when using value 1 with vi:u(same error listed below for IApplicationDisplayService for unavailable commands), however passing 1 to vi:s/vi:m results in the IApplicationDisplayService having greater privileges.
Returns an [[#IApplicationDisplayService]]. Takes an input u32, user-processes use 0 or 1, with 0 for regular-applications normally. 0 = user-service(vi:u), 1 = system/manager service (vi:s/vi:m). Returns an error when using value 1 with vi:u(same error listed below for IApplicationDisplayService for unavailable commands), however passing 1 to vi:s/vi:m results in the IApplicationDisplayService having greater privileges.
== GetDisplayServiceWithProxyNameExchange ==
Takes an input u32, and returns an [[#IApplicationDisplayService]].


= vi:s =
= vi:s =