I dont follow what you are actually asking for questions 2 and 3.
But or question 1, here are all the "contants" I ever used.
I ended up hard-coding the values into the functions to reduce
the source-file complexity-of-reading.
#define GENERIC_READ 0x80000000
#define GENERIC_WRITE 0x40000000
#define FILE_SHARE_READ 0x1
#define FILE_SHARE_WRITE 0x2
#define CREATE_NEW 0x1
#define CREATE_ALWAYS 0x2
#define OPEN_EXISTING 0x3
#define OPEN_ALWAYS 0x4
#define TRUNCATE_EXISTING 0x5
#define FILE_FLAG_OVERLAPPED 0x40000000
#define OF_READ 0x0
#define OF_WRITE 0x1
The problem with convrting my code to be USB friendly is
finding/retrieving the "...USB PORT GUID...".
I just cant figure out how...