Question

 

What is the size of the receive buffer allocated by the VCP driver on Windows systems?

Answer

 

The VCP driver makes use of the Windows OS API call MmQuerySystemSize() to determine how big of a receive buffer it should allocate.

 

  • If the call returns MmLargeSystem on the target computer, the VCP driver allocates 65,536 bytes (64 Kbytes) for the RX buffer.

  • If it returns MmMediumSystem, 8192 bytes (8 Kbytes) is allocated for the RX buffer.

  • If the call returns MmSmallSystem or anything else, 1024 bytes (1 Kbyte) is allocated for the RX buffer.

This applies to all CP210x USB-to-serial devices that make use of the VCP driver. Note that the sizes of the RX and TX hardware FIFOs on the different CP210x devices vary and are documented in the relevant datasheets.

  • USB Bridges
  • Knowledge Base Articles
  • Interface