D'oh!  Missed adding the .PARAMETER Comment. Sorry.

The 64KB buffer default was based the performance metrics observed in http://research.microsoft.com/pubs/64538/tr-2004-136.doc.  mainly: "the overhead stabilizes at around 5 cycles per byte for writes and 10 cycles per byte for reads at request sizes of 64 KB." (Page 5).  Performance begins to drop off again at the 1MB buffer, as the stream has to wait until the buffer is filled before returning the bytes to the application. 

Overall, I think the following would probably be optimal for properly bounding the buffer.  Allowing for larger buffer sizes that may help improve performance on a 100KB to 1MB file.

```PowerShell
[ValidateRange(1,2097152)]
[UInt32]
$BufferLen = 65536,
```