Quantum
fe835b98d5
[host] windows: sleep for 1 second instead of 1 millisecond
...
This is definitely supposed to sleep for 1 second.
1 ms is basically no throttling.
2021-01-17 02:58:27 +11:00
Quantum
c5c43d99f3
[host] windows: allow capture of login screen
...
WTSGetActiveConsoleSessionId will return a session even if it's not logged in,
unlike our old GetInteractiveSessionID function. Launching looking glass on
such a console session will allow the login screen to be captured.
Note that WTSGetActiveConsoleSessionId() will return 0xFFFFFFFF if there are
no sessions attached.
2021-01-17 02:56:29 +11:00
Quantum
4858bb5899
[host] windows: avoid quoting issues with CreateProcessAsUserA
...
To quote MSDN documentation:
> The lpApplicationName parameter can be NULL, in which case the executable
> name must be the first white space–delimited string in lpCommandLine. If
> the executable or path name has a space in it, there is a risk that a
> different executable could be run because of the way the function parses
> spaces. The following example is dangerous because the function will
> attempt to run "Program.exe", if it exists, instead of "MyApp.exe".
>
> LPTSTR szCmdline[] = _tcsdup(TEXT("C:\\Program Files\\MyApp"));
> CreateProcessAsUser(hToken, NULL, szCmdline, /*...*/ );
>
> If a malicious user were to create an application called "Program.exe" on
> a system, any program that incorrectly calls CreateProcessAsUser using the
> Program Files directory will run this application instead of the intended
> application.
>
> To avoid this problem, do not pass NULL for lpApplicationName.
So instead, we pass the executable to lpApplicationName instead, which avoids
the issue. MSDN says:
> The lpCommandLine parameter can be NULL. In that case, the function uses
> the string pointed to by lpApplicationName as the command line.
This also avoids the strdup since lpApplicationName is LPCSTR unlike
lpCommandLine which is LPSTR.
2021-01-16 11:48:03 +11:00
Quantum
8f27789d25
[host] windows: close handle to token in enablePriv
...
This should eliminate all handle leaks resulting from killing the host.
2021-01-15 20:44:50 +11:00
Quantum
e401513552
[host] windows: add timestamps to service logs
...
This makes it easier to identify when things in the logs happened.
2021-01-15 20:44:38 +11:00
Quantum
81561a242f
[host] windows: remove ImpersonateLoggedOnUser call
...
It shouldn't have any effect, since the host application is created with
the token, and there is no need for the service itself to impersonate.
In practice, removal doesn't appear to have any effect on the ability to
capture privileged things like secure desktop.
2021-01-15 20:44:25 +11:00
Quantum
789f21ccb3
[host] windows: handle defined exit codes in service
...
The service should now react to host application exit codes.
For the exit codes that demands it, the service will exit instead of
restarting the host.
2021-01-15 20:44:13 +11:00
Quantum
323aab8ec2
[host] windows: improve restart logic and remove mutex hack
...
Use the process handle returned by CreateProcessAsUserA to wait on the
process. This results in faster response times and less polling.
For example, it now restarts instantly when UAC is activated.
This also removes the call to OpenProcess and rendering the mutex unnecessary.
As a bonus, it should fix #298 .
2021-01-15 11:43:23 +11:00
Quantum
22920acc88
[host] windows: define exit codes for future use
...
The host process will be changed to return these codes, from which the
service process could decide whether to exit or restart the process and log.
Note that on Windows, return values are 32-bit unlike POSIX which is only 8.
2021-01-15 11:27:02 +11:00
Quantum
65009dcedc
[host] windows: avoid leaking process and thread handles
...
The handles in PROCESS_INFORMATION must be closed if not used, or they
will leak.
2021-01-15 09:49:42 +11:00
Quantum
a55b5e4b06
[host] linux: link with libX11 and libGL
2021-01-15 08:49:30 +11:00
Quantum
e467db64d8
[host] linux: include missing headers
...
- <pwd.h> for getpwuid
- <unistd.h> for getuid
- "common/stringutils.h" for alloc_sprintf
2021-01-15 08:49:30 +11:00
Quantum
dd2d69fa37
[host] xcb: remove undefined getPointer member from Capture_XCB
2021-01-15 08:49:30 +11:00
Quantum
ed9e3d253b
[host] xcb: fix xcb_create signature error
...
Should have two arguments instead of zero.
2021-01-15 08:49:30 +11:00
Quantum
2723b4b7c0
[host] xcb: fix xcb_getFrame compile error
...
The argument should have been a pointer.
2021-01-15 08:49:30 +11:00
Tudor Brindus
a46a3a2668
[all] use explicit void parameter lists
...
This makes it a compile-time error to call a function that semantically
takes no parameters with a nonzero number of arguments.
Previously, such code would still compile, but risk blowing up the stack
if a compiler chose to use something other than caller-cleanup calling
conventions.
2021-01-14 17:29:37 +11:00
Geoffrey McRae
c2ad9666bb
[host] use the HotSpot information as provided by DXGI
...
I must have originally overlooked this member when I wrote this code. :S
2021-01-05 20:55:39 +11:00
Quantum
7e4d323427
get display DPI info to scale mouse movement
2021-01-05 09:03:29 +11:00
Geoffrey McRae
0bd5f0b2f1
[client/host] disable stack execution
2021-01-05 00:01:45 +11:00
Jonathan Rubenstein
393a879c0b
[host] nsis: change 'Stopping' to imperative 'Stop'
...
This follows the rest of the output like Install, Delete
2021-01-01 12:12:07 +11:00
Jonathan Rubenstein
d01d9db9bf
[host] nsis: log more details about the process
...
Uses nsExec:ExecToLog in a few places to log on the installation output
window
2021-01-01 12:12:02 +11:00
Jonathan Rubenstein
5cc4f5454f
[host] nsis: amended installer welcome description
2021-01-01 12:10:23 +11:00
Jonathan Rubenstein
32c797e60a
[host] nsis: adds colour to installer and welcome screen
2021-01-01 12:10:15 +11:00
Jonathan Rubenstein
b66715b042
[host] nsisi: add welcome page to installer
2021-01-01 12:10:09 +11:00
Geoffrey McRae
38198b1477
[host] dynamically locate CreateProcesssAsUserA for pre-win 10
2020-12-30 18:29:58 +11:00
Geoffrey McRae
b942085e6c
[host] don't allocate LGMP_Q_POINTER_LEN cursor shape buffers
...
There is no need to allocate a buffer for each message as the client is
only required to show the latest version of the cursor. Whie the logic
should prevent cursor corruption, it's not guaranteed, however this is
not a problem as this can only happen if the client is lagging behind
and as such when it gets another update message it will re-read the
now new shape anyway.
2020-11-10 23:29:04 +11:00
Geoffrey McRae
604b6bec9a
[host] don't fail if windows is dumb and doesnt give us the cursor info
2020-11-01 04:45:57 +11:00
Geoffrey McRae
42ef9964de
[host] enlarge the cursor buffer size for large cursor shapes
2020-11-01 04:34:26 +11:00
Geoffrey McRae
0badf2a84c
[all] move defines for LGMP_QUEUE_*_LEN into KVMFR.h
2020-10-30 18:48:41 +11:00
Geoffrey McRae
9d0ae23f9f
[host] init ivshmem options before testing
2020-10-19 03:01:35 +11:00
Geoffrey McRae
9ff1859dc1
[host] windows: check the ivshmem device exists in the service
2020-10-19 02:49:15 +11:00
Geoffrey McRae
7a7e1d006b
[host] set the program name/description in the app.manifest
2020-10-19 01:56:03 +11:00
Geoffrey McRae
38b05cda50
[host] dxgi: fix incorrect bpp value
2020-10-12 20:08:51 +11:00
Geoffrey McRae
7a49f75d95
[host] dxgi: ensure formatVer is incremented on re-init
2020-10-12 19:39:57 +11:00
Geoffrey McRae
b2961c7939
[all] added new format version field to frame header
2020-10-12 18:52:37 +11:00
Geoffrey McRae
8a9f004ff6
[host/client] fix invalid initialization of RGBA16F
2020-10-11 19:39:47 +11:00
Geoffrey McRae
9c6bd888fd
[host/client] added experimental RGBA16 float support (EGL only)
2020-10-11 19:22:31 +11:00
Geoffrey McRae
a94d3734c2
[all] pass the project path to the version.cmake script
2020-10-09 02:51:28 +11:00
Geoffrey McRae
e1d7752165
[host] fix nsis build failure to do invalid path to new VERSION file
2020-10-09 02:36:48 +11:00
Geoffrey McRae
e6c88a4af3
[all] be smarter about getting the git version
2020-10-09 02:17:20 +11:00
Geoffrey McRae
e20c8a5cc7
[host] dxgi: don't try to get the hotspot of a null cursor
2020-10-06 23:24:01 +11:00
Geoffrey McRae
4f4d2dbf42
[host] dxgi: fix memory leak if an error occurs
2020-10-06 22:32:10 +11:00
Geoffrey McRae
7e362050f7
[all] update KVMFR to provide cursor hotspot information
...
This commit bumps the KVMFR protocol version as it adds additional
hotspot x & y fields to the KVMFRCursor struct. This corrects the issue
of invalid alignment of the local mouse when the shape has an offset
such as the 'I' beam.
2020-08-20 13:51:01 +10:00
camr0
72d70e8322
Update host/README.md: c-host -> host
2020-08-17 11:44:52 +10:00
Geoffrey McRae
1c7961daeb
[host] dxgi: rework locking and retry logic for lower latency
2020-08-15 20:49:49 +10:00
Geoffrey McRae
cdc3384883
[host] dxgi: improve frame signaling mechanics
2020-08-15 18:16:11 +10:00
Geoffrey McRae
969effedde
[host] update information about PsExec now LG can run as a service
2020-08-13 11:41:16 +10:00
Geoffrey McRae
dc4d1d49fa
[host] updated the readme with regards to log file location
2020-08-12 22:15:22 +10:00
Geoffrey McRae
4e1f947a09
[host] Windows: fix uninstaller product name
2020-08-12 22:03:10 +10:00
Geoffrey McRae
15d1a74291
[host] Windows: multiple fixes to the installer
2020-08-12 21:50:48 +10:00
TheCakeIsNaOH
7dba6b9b08
[Host] Convert installer to setup service instead of scheduled task
2020-08-12 21:32:15 +10:00
TheCakeIsNaOH
a5ad531004
[Host] Change default install dir "Looking-Glass" to "Looking Glass"
2020-08-12 21:32:15 +10:00
TheCakeIsNaOH
c119b3dcca
[Host] Correct installer and shortcut names
2020-08-12 21:32:15 +10:00
TheCakeIsNaOH
e2f2437ef4
[Host] Installer command line options and install location selection add
2020-08-12 21:32:15 +10:00
TheCakeIsNaOH
b2980fea63
[Host] Add instructions on how to build NSIS installer.
2020-08-12 21:32:15 +10:00
TheCakeIsNaOH
2b518690b8
[Host] NSIS script change names from C-Host to Host
2020-08-12 21:32:15 +10:00
TheCakeIsNaOH
92aca75792
[c-host] Add NSIS installer script
2020-08-12 21:32:15 +10:00
Geoffrey McRae
64fdb8b7bb
[host] Windows: service (un)install now starts/stops the service
...
In addition to starting and stopping the service, it now also stops the
LG process if the service started it.
2020-08-12 20:56:02 +10:00
Geoffrey McRae
380b5df9f9
[host] increase sleep timeout to 100ms
2020-08-11 19:11:17 +10:00
Geoffrey McRae
c7330167cf
[host] shutdown capture if there are no subscribers
...
Fixes #33
2020-08-11 18:30:47 +10:00
Geoffrey McRae
ca02e1aba9
[host] Windows: change "Open Log File" to "Log File Location"
2020-08-11 17:45:00 +10:00
Geoffrey McRae
ca4b1f5592
[host] Windows: don't open the log file, instead show it's location
...
Now that it's recommended to run LG as the `SYSTEM` user, launching an
application to read the log file is dangerous as it will be launched
with the same access rights (`SYSTEM`). Instead so as Microsoft
recommends and only present a message box with the information.
2020-08-11 17:42:00 +10:00
Geoffrey McRae
0cf1e27709
[host] Windows: run with HIGH priority if started by the service
2020-08-11 17:37:40 +10:00
Geoffrey McRae
045932ce77
[host] send the correct cursor shape on client connection
2020-08-11 17:16:54 +10:00
Geoffrey McRae
bf5481446b
[host] Windows: poll more freqently for a stopped LG process
2020-08-11 15:22:29 +10:00
Geoffrey McRae
4619ddef5d
[host] Windows: added missing linker library
2020-08-11 13:15:18 +10:00
Geoffrey McRae
ea74ee6e25
[host] windows: fix crosscompile take 2
2020-08-11 13:11:42 +10:00
Geoffrey McRae
ecd73aa670
[host] windows: fix linux crosscompile
2020-08-11 13:07:23 +10:00
Geoffrey McRae
10d9678b3d
[host] Windows: improved service restart detection
2020-08-11 12:47:50 +10:00
Geoffrey McRae
e08d3afdbc
[host] Windows: added missing service files
2020-08-11 12:27:04 +10:00
Geoffrey McRae
9a6b598438
[host] Windows: Implemented service to launch LG as the SYSTEM user
...
Experimental, use at your own peril!
This commit adds the ability for the LG host to install and launch with
Windows as a system service.
To install simply run `looking-glass-host.exe InstallService` or
conversely to uninstall `looking-glass-host.exe UninstallService`.
2020-08-11 12:22:22 +10:00
Geoffrey McRae
1d6d640b6e
[host] dxgi: default to using the acquire lock
2020-08-07 20:31:46 +10:00
Geoffrey McRae
977d7b277d
[host] dxgi: boost GPU thread priority if possible
2020-08-07 19:44:00 +10:00
Geoffrey McRae
9e3a42cb62
[host] don't stop the timer when restarting capture
2020-08-03 12:04:50 +10:00
Geoffrey McRae
67dec216d2
[host] search the applications local directory for the config
2020-05-30 12:31:26 +10:00
Geoffrey McRae
553e2830bb
[client/host] share the host version with the client for diagnostics
2020-05-29 14:14:31 +10:00
Geoffrey McRae
667ab981ba
[host] send the latest cusror information when a new client connects
2020-05-25 14:37:02 +10:00
Geoffrey McRae
bc7871f630
[c-host] renamed finall to just plain host
2020-05-25 13:42:43 +10:00
Geoffrey McRae
373d4ac932
[host] removed old host application from the project, see c-host
2019-05-28 14:47:09 +10:00
Paul Götzinger
b5975e0f05
[host] [c-host] added support to specify IVSHMEM device
...
[host] basic IVSHMEM device selecting implemented
Minor fixes for IVSHMEM device scanning
[c-host] added support to specify IVSHMEM device
2019-05-10 22:28:27 +10:00
Geoffrey McRae
28b12c85f4
[build] make "common" a static library (part 1/2)
2019-04-11 11:03:30 +10:00
Geoffrey McRae
526c09b7ff
[host] added missing file from build
2019-02-28 16:26:09 +11:00
Geoffrey McRae
5a37a53cb0
[host] move windows specific debug code to the host
2019-02-28 16:23:31 +11:00
Geoffrey McRae
08bf01b649
[all] update copyright dates
2019-02-22 22:16:14 +11:00
Geoffrey McRae
263b412fdf
[host] dxgi: fixed reversed logic for fallback
2019-02-07 15:13:07 +11:00
Geoffrey McRae
037ea5b1fc
[host] fix compiler warnings
2019-02-07 14:43:18 +11:00
Geoffrey McRae
18634fa805
[host] fallback to IDXGIOutput1 if IDXGIOutput5 is not available
2019-02-07 14:43:18 +11:00
Geoffrey McRae
1ef61f6cd3
[host] use a global hook to obtain cursor move pos
2019-01-11 23:58:50 +11:00
Geoffrey McRae
5518ccb795
[host] NvFBC: user specified privateData for debug
2019-01-09 16:10:46 +11:00
Geoffrey McRae
6e1180ce06
[host] nvfbc: initial updates to re-enable support
2019-01-03 17:08:05 +11:00
Geoffrey McRae
2a86339b1d
[host] [Patch 1/2] fix copy of padded resolutions
2019-01-02 10:29:46 +11:00
Geoffrey McRae
a1b1ed0060
[host] initiate the texture copy earlier
2018-12-07 20:54:30 +11:00
Geoffrey McRae
2cb18a3f8f
[host] removed incomplete h264
2018-12-07 20:54:30 +11:00
Geoffrey McRae
2a30bb718a
[host] updated to take advantage of DXGI v1.5
2018-12-04 21:26:46 +11:00
Geoffrey McRae
d235d076c4
[host] simplify capture logic and fix re-init bug
2018-11-02 21:38:02 +11:00
Geoffrey McRae
9f67f42f94
[host] fix hang on capture error
2018-10-19 21:16:47 +11:00
Geoffrey McRae
31a25c94c6
[host] fix failure to re-init
2018-10-19 21:16:42 +11:00
Geoffrey McRae
6a9f687eae
[host] increase cursor ring size to avoid a race
2018-10-19 20:20:01 +11:00
Geoffrey McRae
df7e9b1184
[host] remove unused critical sections
2018-10-19 20:15:42 +11:00
Geoffrey McRae
1350ba6c4b
[host] accumulate cursor updates rather then queue
2018-10-19 20:14:43 +11:00