package vhd-format-lwt
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
On This Page
  
  
  Lwt interface to read/write VHD format data
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
  
    
      vhd-format-0.13.0.tbz
    
    
        
    
  
  
  
    
  
  
    
  
        sha256=b65e38d39345a64beb5601ff8a09cb5b0519e8eb528fa7a1b92d71d383e3e1c5
    
    
  sha512=27a7acc63aeca883f1f82a6f232925c3bb1e9123826f970de227cbb2137445fe084a5cad2a9476bfecdf7d87d23919bc7790e92164c74e7c7ffdc99b2de64bfd
    
    
  doc/README.html
ocaml-vhd
A pure OCaml library to read and write vhd format data, plus a simple command-line tool which allows vhd files to be interrogated, manipulated, format-converted and streamed to and from files and remote servers.
Example usage
To initialise your environment in utop:
open Lwt;;
#require "vhd-format";;
#require "vhd-format-lwt";;
module V = Vhd.Make(Vhd_lwt);;To open a file and read the first sector:
V.Vhd_IO.openfile "foo.vhd" >>= fun f -> V.Vhd_IO.read_sector f 0L;;
- : Cstruct.t option = Some {Cstruct.buffer = <abstr>; off = 0; len = 512}   To read the vhd file header:
V.Vhd_IO.openfile "89a62601-c82a-447a-a7fd-f7f379195e80.vhd" >>= fun f -> return f.Vhd.Vhd.header;;
- : Vhd.Header.t = {
 Vhd.Header.table_offset = 1536L; max_table_entries = 12288;
 block_size_sectors_shift = 12; checksum = -3001l; parent_unique_id = <abstr>;  
 parent_time_stamp = 0l; parent_unicode_name = [||];
 parent_locators =
  [|{Vhd.Parent_locator.platform_code = Vhd.Platform_code.None;
     platform_data_space = 0l; platform_data_space_original = 0l;
     platform_data_length = 0l; platform_data_offset = 0L;
     platform_data = {Cstruct.buffer = <abstr>; off = 0; len = 0}};
    {Vhd.Parent_locator.platform_code = Vhd.Platform_code.None;
     platform_data_space = 0l; platform_data_space_original = 0l;
     platform_data_length = 0l; platform_data_offset = 0L;
     platform_data = {Cstruct.buffer = <abstr>; off = 0; len = 0}};
    {Vhd.Parent_locator.platform_code = Vhd.Platform_code.None;
     platform_data_space = 0l; platform_data_space_original = 0l;
     platform_data_length = 0l; platform_data_offset = 0L;
     platform_data = {Cstruct.buffer = <abstr>; off = 0; len = 0}};
    {Vhd.Parent_locator.platform_code = Vhd.Platform_code.None;
     platform_data_space = 0l; platform_data_space_original = 0l;
     platform_data_length = 0l; platform_data_offset = 0L;
     platform_data = {Cstruct.buffer = <abstr>; off = 0; len = 0}};
    {Vhd.Parent_locator.platform_code = Vhd.Platform_code.None;
     platform_data_space = 0l; platform_data_space_original = 0l;
     platform_data_length = 0l; platform_data_offset = 0L;
     platform_data = {Cstruct.buffer = <abstr>; off = 0; len = 0}};
    {Vhd.Parent_locator.platform_code = Vhd.Platform_code.None;
     platform_data_space = 0l; platform_data_space_original = 0l;
     platform_data_length = 0l; platform_data_offset = 0L;
     platform_data = {Cstruct.buffer = <abstr>; off = 0; len = 0}};
    {Vhd.Parent_locator.platform_code = Vhd.Platform_code.None;
     platform_data_space = 0l; platform_data_space_original = 0l;
     platform_data_length = 0l; platform_data_offset = 0L;
     platform_data = {Cstruct.buffer = <abstr>; off = 0; len = 0}};
    {Vhd.Parent_locator.platform_code = Vhd.Platform_code.None;
     platform_data_space = 0l; platform_data_space_original = 0l;
     platform_data_length = 0l; platform_data_offset = 0L;
     platform_data = {Cstruct.buffer = <abstr>; off = 0; len = 0}}|]} sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
  On This Page