Private/Get-ReadAllBytes.ps1

function Get-ReadAllBytes {
    <#
        .SYNOPSIS
        Short description
   
        .DESCRIPTION
        Long description
   
        .PARAMETER reader
        Parameter description
   
        .EXAMPLE
        $reader = [System.IO.BinaryReader]::new($stream)
        $bytes = Get-ReadAllBytes -reader $reader
   
        .NOTES
        https://www.nick-it.de
        Andreas Nick, 2019/2020/2024
    #>

    [CmdletBinding()]
    [Alias()]
    [OutputType([byte[]])]
    
    param(
      [Parameter(Position = 0, Mandatory = $true, ValueFromPipeline = $true)]
      [System.IO.BinaryReader] $reader
    )
  
    Process {
      $bufferSize = 4096
      $ms = New-Object System.IO.MemoryStream
      $buffer = New-Object byte[] $bufferSize
      $count = 0
      do {
        $count = $reader.Read($buffer, 0, $buffer.Length)
        if ($count -gt 0) { 
          $ms.Write($buffer, 0, $count)
        }
      } while ($count -ne 0)
  
      $ms.Close()
      return $ms.ToArray()
    }
  }