# ConSplitter

| Field        | Value                                  |
|--------------|----------------------------------------|
| Index        | 0124                                   |
| Module       | ConSplitter                            |
| Size         | 26884 bytes (26.9 KB)                  |
| PE File      | ConSplitter.efi                        |
| Phase        | DXE                                    |
| Source       | AmiModulePkg/Console/ConSplitter/ConSplit.c |
| SHA-256      | 5bb88921eaa4...                        |
| Sections     | 6 (.text, .rdata, .data, section_3, .xdata, .reloc) |

## Overview

ConSplitter is an AMI Console Splitter driver that implements a console multiplexer for UEFI. It registers three driver binding protocols to aggregate multiple physical console devices into single logical console handles for ConOut, ConIn, and StdErr. The driver manages child device lists for text output, text input, simple pointer, and absolute pointer devices, allowing the UEFI console subsystem to transparently support multiple simultaneous console devices.

## Key Functions

- `ConSplitterTextOutDriverBindingSupported()` -- Tests if a controller supports text output
- `ConSplitterTextOutDriverBindingStart()` -- Starts text output on a controller
- `ConSplitterTextOutDriverBindingStop()` -- Stops text output on a controller
- `ConSplitterTextInDriverBindingSupported()` -- Tests if a controller supports text input
- `ConSplitterTextInDriverBindingStart()` -- Starts text input on a controller
- `ConSplitterTextInDriverBindingStop()` -- Stops text input on a controller
- `ConSplitterPointerDriverBindingSupported()` -- Tests if a controller supports pointer input
- `ConSplitterPointerDriverBindingStart()` -- Starts pointer input on a controller
- `ConSplitterPointerDriverBindingStop()` -- Stops pointer input on a controller

## Dependencies

- `EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL`
- `EFI_SIMPLE_TEXT_INPUT_PROTOCOL`
- `EFI_GRAPHICS_OUTPUT_PROTOCOL`
- `EFI_SIMPLE_POINTER_PROTOCOL`
- `EFI_ABSOLUTE_POINTER_PROTOCOL`
- `EFI_DEVICE_PATH_PROTOCOL`
- `EFI_SERIAL_IO_PROTOCOL`
- `EFI_HII_DATABASE_PROTOCOL`
- `EFI_UGA_DRAW_PROTOCOL`
- `gEfiConsoleOutDeviceGuid` / `gEfiGlobalVariableGuid` (ConOutDev/ConInDev UEFI variables)

## Platform

- **Architecture**: x86-64 (PE32+)
- **Subsystem**: EFI_BOOT_SERVICE_DRIVER (0x0B)
- **Source**: AmiModulePkg / MdeModulePkg
- **BIOS**: HR650X (HR6N0XMLK)