aboutsummaryrefslogtreecommitdiffstats
path: root/api (follow)
Commit message (Collapse)AuthorAgeFilesLines
* api: separate read-wait handle into other functionJason A. Donenfeld2020-11-025-14/+29
| | | | | | Makes the API a bit more clear. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: statically compile devpkey constantsJason A. Donenfeld2020-11-021-4/+2
| | | | | | | I don't like this solution, but I don't see much other choice. It's not in uuid.lib or anywhere like that. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: serialize driver installationJason A. Donenfeld2020-11-023-7/+43
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: make nci.lib work on x86Jason A. Donenfeld2020-11-024-5/+19
| | | | | | | | | | This is an appalling hack. We need the lib tool to generate a coff lib with the "undecorate" parameter. And apparently the only way to do this with the MSVC tools is by making a stub object, and then rewriting the symbols using the def file. See Q131313 for Microsoft-sanctioned details. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: map cr errors to win32 errorsJason A. Donenfeld2020-11-021-12/+8
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: simplify and unify error messagesSimon Rozman2020-11-023-47/+47
| | | | Signed-off-by: Simon Rozman <simon@rozman.si>
* api: pnf param is noneJason A. Donenfeld2020-11-021-1/+1
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: make version function uniformJason A. Donenfeld2020-11-023-52/+7
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: avoid call to CM_Get_DevNode_StatusJason A. Donenfeld2020-11-021-36/+25
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: check for duplicate adapter statusJason A. Donenfeld2020-11-024-4/+58
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: separate out driver installationJason A. Donenfeld2020-11-021-138/+149
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: cleanup namesJason A. Donenfeld2020-11-014-10/+10
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* test: introduce a demo clientSimon Rozman2020-11-011-0/+1
| | | | Signed-off-by: Simon Rozman <simon@rozman.si>
* api: account for nt path to moduleJason A. Donenfeld2020-11-011-14/+8
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: check buffer overflows in runtimeSimon Rozman2020-10-315-71/+52
| | | | Signed-off-by: Simon Rozman <simon@rozman.si>
* api: fix up console writing for debugJason A. Donenfeld2020-10-311-15/+10
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: clear up argument evaluation orderJason A. Donenfeld2020-10-311-5/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: do not require RebootRequiredJason A. Donenfeld2020-10-313-8/+14
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: RebootRequire is an _Out_Jason A. Donenfeld2020-10-314-14/+13
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: add debugging rundll32 entry pointJason A. Donenfeld2020-10-315-15/+117
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: add missing header for rundll32 modeJason A. Donenfeld2020-10-311-0/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: opencode bin2hex in same manner as random directory creationJason A. Donenfeld2020-10-311-15/+5
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: link to nci.dll at compile timeJason A. Donenfeld2020-10-316-61/+15
| | | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Simon Rozman <simon@rozman.si>
* api: get rid of pch and make headers saneJason A. Donenfeld2020-10-3119-74/+89
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: simplify build settingsJason A. Donenfeld2020-10-311-44/+4
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: use NT api directly for enumerating kernel modulesJason A. Donenfeld2020-10-315-27/+68
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api expose Send.TailMoved event to clientsSimon Rozman2020-10-313-27/+21
| | | | | | This allows clients to use it in WaitForMultipleObjects(). Signed-off-by: Simon Rozman <simon@rozman.si>
* api: rename MAX_POOL to WINTUN_MAX_POOLSimon Rozman2020-10-314-24/+36
| | | | Signed-off-by: Simon Rozman <simon@rozman.si>
* api: upgrade source analysis annotationsSimon Rozman2020-10-311-1/+1
| | | | Signed-off-by: Simon Rozman <simon@rozman.si>
* api: refuse to load DLL on init failureSimon Rozman2020-10-313-4/+13
| | | | Signed-off-by: Simon Rozman <simon@rozman.si>
* api: attempt to upgrade currently running adaptersJason A. Donenfeld2020-10-312-3/+135
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: use proper iso atomic semanticsJason A. Donenfeld2020-10-315-36/+6
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: rework pool hashingJason A. Donenfeld2020-10-311-8/+3
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: only force close handles if requestedJason A. Donenfeld2020-10-314-13/+19
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: only sleep after force closing handles if requiredJason A. Donenfeld2020-10-311-5/+13
| | | | | | | Also force close handles when deleting the adapter, in case the function is called from another process, for example an uninstaller. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: selectively use temporary variable to prepare outputSimon Rozman2020-10-313-55/+66
| | | | | Suggested-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Simon Rozman <simon@rozman.si>
* api: remove security attributes debug trap doorJason A. Donenfeld2020-10-316-20/+14
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: elevate only when needed for system operationsJason A. Donenfeld2020-10-318-115/+179
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: simplify driver selection by always including EV driverSimon Rozman2020-10-313-7/+1
| | | | | | | | When Windows 7-8.1 support is sunset, there will be no more EV driver deployment at all. Suggested-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Simon Rozman <simon@rozman.si>
* api: fix dll hijacking vulnsJason A. Donenfeld2020-10-314-3/+20
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* api: simplify driver removalSimon Rozman2020-10-317-123/+31
| | | | | | | | | | | | | | | | | When we install the Wintun driver to the store, we get exact oem<nn>.inf filename of the driver in the store we just installed. Since the installation should be only temporarily, we should uninstall only the driver we installed. This also eliminates the need for iterating driver store speeding up things. The code we removed was inherited from the installer.dll, where it made perfect sense to remove all installed Wintun drivers in the update process. Suggested-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Simon Rozman <simon@rozman.si>
* api: make #ifdef-s more descriptiveSimon Rozman2020-10-313-6/+13
| | | | | Suggested-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Simon Rozman <simon@rozman.si>
* api: cleanup driver selection logicSimon Rozman2020-10-312-21/+5
| | | | | | | | With all the platforms (including ARM) having at least one driver now, the dead-code removal #ifdef-s are no longer required. Suggested-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Simon Rozman <simon@rozman.si>
* Add ARM driver compilationSimon Rozman2020-10-311-2/+2
| | | | | | | | | This adds the ARM driver to the list of Wintun drivers we compile for future deployment. Since we're not in position to test it in the real world, any feedback is greatly appreciated. Suggested-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Simon Rozman <simon@rozman.si>
* api: add a cleanup note when Windows 7 support is discontinuedSimon Rozman2020-10-311-0/+1
| | | | | | | | DriverMajorVersion and DriverMinorVersion registry values were introduced in Windows 8. Suggested-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Simon Rozman <simon@rozman.si>
* api: split adapter creation/deletion to delegator and worker functionsSimon Rozman2020-10-311-75/+92
| | | | | Suggested-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Simon Rozman <simon@rozman.si>
* api: make pipe handles non-inheritable by defaultSimon Rozman2020-10-311-7/+4
| | | | | | | | | ...and change to inheritable only the ones really needed, eliminating a window where we'd have inheritable handles that are not supposed to be inheritable. Suggested-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Simon Rozman <simon@rozman.si>
* api: check the stdout reader thread exit status for failuresSimon Rozman2020-10-311-34/+38
| | | | | | | ...and refactor the ExecuteRunDll32(). Reported-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Simon Rozman <simon@rozman.si>
* api: make architecture-dependent wintun.dll selection an explicit selectSimon Rozman2020-10-311-3/+15
| | | | | Suggested-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Simon Rozman <simon@rozman.si>
* api: fix adapter name numbering terminationSimon Rozman2020-10-311-1/+1
| | | | | Reported-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Simon Rozman <simon@rozman.si>