I'm working on importing an old C windows driver project that was created in Visual c++ 6.0 into visual studio 2012. The way that the structs were defined are causing errors in vs2012.
typedef struct {
LINK Link;
HANDLE hFile;
BYTE handleType;
OVERLAPPED Overlapped;
CRITICAL_SECTION csIoCtrl;
} USB_HANDLE, *PUSB_HANDLE;
typedef struct {
USB_HANDLE; //error occurs here saying nothing was declared for USB_HANDLE
LIST PipeList;
BOOL bRemoved;
CRITICAL_SECTION csPipeList;
SP_DEVICE_INTERFACE_DETAIL_DATA *InterfaceData;
} USB_DEVICE, *PUSB_DEVICE;
The project then uses calls like USB_DEVICE mydevice; mydevice->hfile = handle;
Is this type of structure possible in vs2012?
(edit - though these do show as errors, visual studio 2012 did compile and successfully build a solution. I will be testing the driver to see if everything works properly soon.)
Errors:
A work around that I thought I could use was making the USB_DEVICE struct:
typedef struct {
USB_HANDLE USB_HANDLE;
LIST PipeList;
BOOL bRemoved;
CRITICAL_SECTION csPipeList;
SP_DEVICE_INTERFACE_DETAIL_DATA *InterfaceData;
} USB_DEVICE, *PUSB_DEVICE;
Then I could make the rest of the calls: mydevice->USB_HANDLE.hfile = handle;
Is this an equivalent statement?

