So how to get information about resources.
* Get class Guid using device class name (SetupDiClassGuidsFromNameA function)
* Get device info set for device class (SetupDiGetClassDevsA function)
* Get device info data for every device (SetupDiGetClassDevsA function, second parameter for this function is sequential device index in the device class, so call this function in circle with device index = 0, 1, etc.).
* Get information about current configuration (CM_Get_First_Log_Conf function)
* Get resource descriptor from current configuration (CM_Get_Next_Res_Des function, do this and follow steps for every resource till they exist)
* Get information about size of resource data (CM_Get_Res_Des_Data_Size function)
* Get resource data (CM_Get_Res_Des_Data function)
* Marshal resource data in suitable structures (class Marshal, methods PtrToStructure; structure IntPtr, method ToInt32 and vice versa to IntPtr)