# yuzhouren86/vxkex-next architecture

> Architecture diagram of the GitHub repository yuzhouren86/vxkex-next, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/yuzhouren86/vxkex-next
- Repository: https://github.com/yuzhouren86/vxkex-next

## Overview

VxKex NEXT is a Windows compatibility layer that supplies newer APIs to applications on older Windows versions. The principal workflow is a user enabling VxKex for a program through Explorer’s properties UI, then launching it through the loader; KexDll initializes compatibility behavior and the extended DLLs provide API implementations. The README also documents installation and localization. The graph reflects those capabilities and the sampled entry-point wiring; many individual API implementations and configuration paths are represented by their existing module directories because their source was not sampled.

Main entry points: [`VxKexLdr/main.c`](https://github.com/yuzhouren86/vxkex-next/blob/main/VxKexLdr/main.c) (Program loader), [`KexCfg/main.c`](https://github.com/yuzhouren86/vxkex-next/blob/main/KexCfg/main.c) (Configuration tool), [`KexShlEx/dllmain.c`](https://github.com/yuzhouren86/vxkex-next/blob/main/KexShlEx/dllmain.c) (Properties extension), [`KexDll/dllmain.c`](https://github.com/yuzhouren86/vxkex-next/blob/main/KexDll/dllmain.c) (Compatibility core)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_setup["Setup and configuration"]
  node_setup_app["Installer<br/>[main.c]"]
  node_config_app["Configuration tool<br/>[main.c]"]
  node_shell_ext["Properties extension<br/>[dllmain.c]"]
  node_config_helpers["Config helpers"]
end

subgraph group_launch["Launch and injection"]
  node_loader["Program loader<br/>[main.c]"]
  node_cpiw_loader["Explorer CPIW helper<br/>[main.c]"]
  node_cpiw_dll["CPIW patch stub<br/>[dllmain.c]"]
end

subgraph group_runtime["Compatibility runtime"]
  node_kexdll["Compatibility core<br/>[dllmain.c]"]
  node_propagation["Process propagation<br/>[propagte.c]"]
end

subgraph group_apis["Extended APIs"]
  node_base_api["Base APIs"]
  node_user_api["User APIs"]
  node_com_api["COM and WinRT"]
  node_net_api["Network APIs"]
  node_security_api["Security APIs"]
  node_crypto_api["Cryptography"]
  node_schannel_api["TLS and Schannel"]
  node_graphics_api["Graphics APIs"]
  node_system_api["System APIs"]
end

subgraph group_support["Localization and diagnostics"]
  node_localization["Localization<br/>[mls.c]"]
  node_log_viewer["Log viewer<br/>[vxlview.c]"]
  node_log_query["Log queries<br/>[vxlquery.c]"]
end

node_user(("User"))
node_explorer(("Windows Explorer"))
node_target(("Target application"))

node_user -->|"opens properties"| node_shell_ext
node_explorer -->|"loads extension"| node_shell_ext
node_shell_ext -->|"opens settings"| node_config_app
node_user -->|"installs product"| node_setup_app
node_user -->|"configures program"| node_config_app
node_config_app -->|"handles settings"| node_config_helpers
node_explorer -->|"invokes launch"| node_loader
node_loader -->|"initializes"| node_propagation
node_loader -->|"patches process check"| node_kexdll
node_loader -->|"creates process"| node_target
node_cpiw_loader -->|"injects helper"| node_explorer
node_cpiw_dll -->|"loads for patch"| node_kexdll
node_kexdll -->|"redirects base APIs"| node_base_api
node_target -->|"uses APIs"| node_base_api
node_target -->|"uses APIs"| node_user_api
node_target -->|"uses APIs"| node_com_api
node_target -->|"uses APIs"| node_net_api
node_target -->|"uses APIs"| node_security_api
node_target -->|"uses APIs"| node_crypto_api
node_target -->|"uses APIs"| node_schannel_api
node_target -->|"uses APIs"| node_graphics_api
node_target -->|"uses APIs"| node_system_api
node_loader -->|"sets language"| node_localization
node_config_app -->|"sets language"| node_localization
node_setup_app -->|"sets language"| node_localization
node_log_viewer -->|"queries log data"| node_log_query

click node_setup_app "https://github.com/yuzhouren86/vxkex-next/blob/main/KexSetup/main.c"
click node_config_app "https://github.com/yuzhouren86/vxkex-next/blob/main/KexCfg/main.c"
click node_shell_ext "https://github.com/yuzhouren86/vxkex-next/blob/main/KexShlEx/dllmain.c"
click node_config_helpers "https://github.com/yuzhouren86/vxkex-next/tree/main/KxCfgHlp"
click node_loader "https://github.com/yuzhouren86/vxkex-next/blob/main/VxKexLdr/main.c"
click node_cpiw_loader "https://github.com/yuzhouren86/vxkex-next/blob/main/CpiwBypaLdr/main.c"
click node_cpiw_dll "https://github.com/yuzhouren86/vxkex-next/blob/main/CpiwBypa/dllmain.c"
click node_kexdll "https://github.com/yuzhouren86/vxkex-next/blob/main/KexDll/dllmain.c"
click node_propagation "https://github.com/yuzhouren86/vxkex-next/blob/main/KexDll/propagte.c"
click node_base_api "https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxBase"
click node_user_api "https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxUser"
click node_com_api "https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxCom"
click node_net_api "https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxNet"
click node_security_api "https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxAdvapi"
click node_crypto_api "https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxCryp"
click node_schannel_api "https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxSChanl"
click node_graphics_api "https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxDx"
click node_system_api "https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxMi"
click node_localization "https://github.com/yuzhouren86/vxkex-next/blob/main/KexMLS/mls.c"
click node_log_viewer "https://github.com/yuzhouren86/vxkex-next/blob/main/VxlView/vxlview.c"
click node_log_query "https://github.com/yuzhouren86/vxkex-next/blob/main/KexDll/vxlquery.c"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_setup_app,node_config_app,node_shell_ext,node_config_helpers,node_user toneBlue
class node_loader,node_cpiw_loader,node_cpiw_dll toneAmber
class node_kexdll,node_propagation toneMint
class node_base_api,node_user_api,node_com_api,node_net_api,node_security_api,node_crypto_api,node_schannel_api,node_graphics_api,node_system_api toneRose
class node_localization,node_log_viewer,node_log_query,node_explorer,node_target toneIndigo
```

## Components

### Setup and configuration

- [Installer](https://github.com/yuzhouren86/vxkex-next/blob/main/KexSetup/main.c): `KexSetup/main.c`
- [Configuration tool](https://github.com/yuzhouren86/vxkex-next/blob/main/KexCfg/main.c): `KexCfg/main.c`
- [Properties extension](https://github.com/yuzhouren86/vxkex-next/blob/main/KexShlEx/dllmain.c): `KexShlEx/dllmain.c`
- [Config helpers](https://github.com/yuzhouren86/vxkex-next/tree/main/KxCfgHlp): `KxCfgHlp`

### Launch and injection

- [Program loader](https://github.com/yuzhouren86/vxkex-next/blob/main/VxKexLdr/main.c): `VxKexLdr/main.c`
- [Explorer CPIW helper](https://github.com/yuzhouren86/vxkex-next/blob/main/CpiwBypaLdr/main.c): `CpiwBypaLdr/main.c`
- [CPIW patch stub](https://github.com/yuzhouren86/vxkex-next/blob/main/CpiwBypa/dllmain.c): `CpiwBypa/dllmain.c`

### Compatibility runtime

- [Compatibility core](https://github.com/yuzhouren86/vxkex-next/blob/main/KexDll/dllmain.c): `KexDll/dllmain.c`
- [Process propagation](https://github.com/yuzhouren86/vxkex-next/blob/main/KexDll/propagte.c): `KexDll/propagte.c`

### Extended APIs

- [Base APIs](https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxBase): `01-Extended DLLs/KxBase`
- [User APIs](https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxUser): `01-Extended DLLs/KxUser`
- [COM and WinRT](https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxCom): `01-Extended DLLs/KxCom`
- [Network APIs](https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxNet): `01-Extended DLLs/KxNet`
- [Security APIs](https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxAdvapi): `01-Extended DLLs/KxAdvapi`
- [Cryptography](https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxCryp): `01-Extended DLLs/KxCryp`
- [TLS and Schannel](https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxSChanl): `01-Extended DLLs/KxSChanl`
- [Graphics APIs](https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxDx): `01-Extended DLLs/KxDx`
- [System APIs](https://github.com/yuzhouren86/vxkex-next/tree/main/01-Extended%20DLLs/KxMi): `01-Extended DLLs/KxMi`

### Localization and diagnostics

- [Localization](https://github.com/yuzhouren86/vxkex-next/blob/main/KexMLS/mls.c): `KexMLS/mls.c`
- [Log viewer](https://github.com/yuzhouren86/vxkex-next/blob/main/VxlView/vxlview.c): `VxlView/vxlview.c`
- [Log queries](https://github.com/yuzhouren86/vxkex-next/blob/main/KexDll/vxlquery.c): `KexDll/vxlquery.c`

### Other components

- **User**
- **Windows Explorer**
- **Target application**

## Connections

- User → Properties extension: opens properties
- Windows Explorer → Properties extension: loads extension
- Properties extension → Configuration tool: opens settings
- User → Installer: installs product
- User → Configuration tool: configures program
- Configuration tool → Config helpers: handles settings
- Windows Explorer → Program loader: invokes launch
- Program loader → Process propagation: initializes
- Program loader → Compatibility core: patches process check
- Program loader → Target application: creates process
- Explorer CPIW helper → Windows Explorer: injects helper
- CPIW patch stub → Compatibility core: loads for patch
- Compatibility core → Base APIs: redirects base APIs
- Target application → Base APIs: uses APIs
- Target application → User APIs: uses APIs
- Target application → COM and WinRT: uses APIs
- Target application → Network APIs: uses APIs
- Target application → Security APIs: uses APIs
- Target application → Cryptography: uses APIs
- Target application → TLS and Schannel: uses APIs
- Target application → Graphics APIs: uses APIs
- Target application → System APIs: uses APIs
- Program loader → Localization: sets language
- Configuration tool → Localization: sets language
- Installer → Localization: sets language
- Log viewer → Log queries: queries log data
