/// <summary> /// Gets a device's registry property. Helper class that /// encapsulates the core functionality of the other get /// registry property functions. /// </summary> /// <param name="devInfoSet">The dev info set.</param> /// <param name="devInfoData">The dev info data.</param> /// <param name="propertyIndex">Index of the property.</param> /// <returns>The property buffer.</returns> private static StringBuilder GetProperty( IntPtr devInfoSet, SP_DEVINFO_DATA devInfoData, SPDRP propertyIndex) { Int32 requiredSize = 0; Int32 propertyRegDataType = 0; StringBuilder propertyBuffer; Win32SetupApi.SetupDiGetDeviceRegistryProperty( devInfoSet, ref devInfoData, (int)propertyIndex, ref propertyRegDataType, null, 0, ref requiredSize); propertyBuffer = new StringBuilder(requiredSize); propertyRegDataType = 0; Win32SetupApi.SetupDiGetDeviceRegistryProperty( devInfoSet, ref devInfoData, (int)propertyIndex, ref propertyRegDataType, propertyBuffer, propertyBuffer.Capacity, ref requiredSize); return(propertyBuffer); }