USB question - Differences between DeviceIoControl and ReadFile in Bulk Transfer

Hi,

I have a question about USB transfer.
To get the data from a device, I use the Bulk transfer.

I usually use DeviceIoControl or ReadFile function in the application.
In the driver, DeviceIoControl issues URB with parameter
_URB_BULK_OR_INTERRUPT_TRANSFER, but ReadFile does not.
Two functions are same in the side of application user.

My question is,
What’s differences between DeviceIoControl with _URB_BULK_OR_INTERRUPT_TRANSFER and ReadFile?

Best regards,
HyungJune Kim