C header sample.
typedef LPVOID UKWD_USB_DEVICE;
typedef struct _UKWD_USB_DEVICE_INFO {
DWORD dwCount;
unsigned char Bus;
unsigned char Address;
unsigned long SessionId;
USB_DEVICE_DESCRIPTOR Descriptor;
} UKWD_USB_DEVICE_INFO, *PUKWD_USB_DEVICE_INFO, * LPUKWD_USB_DEVICE_INFO;
My Understanding
struct
defines a structure (the part between {}). The structure's type is _UKWD_USB_DEVICE_INFO
. After the closing }
UKWD_USB_DEVICE_INFO
is an alias to this structure.
Question
What is the purpose of the declarations after that. * PUKD_USB_DEVICE_INFO
and *LPUKWD_USB_DEVICE_INFO
. Do these pointer aliases mean something different if one is touching the variable and the other has a space between the *
and lettering?