# DiskIoDxe

| Field        | Value                                  |
|--------------|----------------------------------------|
| Index        | 0126                                   |
| Module       | DiskIoDxe                              |
| Size         | 15556 bytes (15.6 KB)                  |
| PE File      | DiskIoDxe.efi                          |
| Phase        | DXE                                    |
| Source       | MdeModulePkg/Universal/Disk/DiskIoDxe/ |
| SHA-256      | 52ff14045d54...                        |
| Sections     | 6 (.text, .rdata, .data, section_3, .xdata, .reloc) |

## Overview

DiskIoDxe is a UEFI DXE driver that translates byte-addressable Disk I/O requests into block-aligned Block I/O operations. It produces `EFI_DISK_IO_PROTOCOL` and `EFI_DISK_IO2_PROTOCOL` on top of the underlying `EFI_BLOCK_IO_PROTOCOL` / `EFI_BLOCK_IO2_PROTOCOL`, allowing upper-layer UEFI components to perform fine-grained reads and writes without needing to manage block alignment themselves. The driver supports asynchronous I/O via the Disk I/O 2 protocol with task queuing and lock-based synchronization.

## Key Functions

- `DiskIoDriverEntryPoint()` -- Module entry point; installs driver binding and component name protocols
- `DiskIoDriverBindingSupported()` -- Tests whether a controller supports the Disk I/O protocol
- `DiskIoDriverBindingStart()` -- Starts the Disk I/O driver on a controller, installs DiskIo protocol instances
- `DiskIoDriverBindingStop()` -- Stops the Disk I/O driver, uninstalls protocols and frees resources
- `DiskIoReadWriteDisk()` -- Core read/write function that translates byte I/O to block I/O
- `DiskIo2ReadWriteDisk()` -- Asynchronous read/write via Disk I/O 2 protocol
- `DiskIoComponentNameGetDriverName()` -- Returns the driver name ("Generic Disk I/O Driver")
- `DiskIoComponentNameGetControllerName()` -- Returns the controller name

## Dependencies

- `EFI_BLOCK_IO_PROTOCOL` -- Underlying block device access
- `EFI_BLOCK_IO2_PROTOCOL` -- Underlying asynchronous block device access
- `EFI_DISK_IO_PROTOCOL` -- Produced protocol for byte-level disk I/O
- `EFI_DISK_IO2_PROTOCOL` -- Produced protocol for async byte-level disk I/O
- `EFI_DRIVER_BINDING_PROTOCOL` -- UEFI driver model
- `EFI_COMPONENT_NAME2_PROTOCOL` -- Component name reporting
- `DEBUG_PRINT_ERROR_LEVEL_PROTOCOL` -- Debug output control

## Platform

- **Architecture**: x86-64 (PE32+)
- **Subsystem**: EFI_BOOT_SERVICE_DRIVER (0x0B)
- **Copyright**: Intel Corporation / Insyde Software Corporation
- **Source**: MdeModulePkg
- **BIOS**: HR650X (HR6N0XMLK)