@msdn=http://msdn2.microsoft.com/en-us/library/aa376985(VS.85).aspx @pinvoke=http://pinvoke.net/$$$.htm Summary: closes the INF file opened by a call to SetupOpenInfFile. This function closes any INF files appended to it by calling SetupOpenAppendInfFile. !!!!C# Signature: [DllImport("setupapi.dll", CharSet = CharSet.Auto, SetLastError = true)] public static extern void SetupCloseInfFile(IntPtr InfHandle); !!!!VB Signature: Public Declare Auto Sub SetupCloseInfFile Lib "setupapi.dll" (ByVal InfHandle As IntPtr) !!!!User-Defined Types: None. !!!!Alternative Managed API: Do you know one? Please contribute it! !!!!Notes: Parameters ||InfHandle || Handle to the INF file to be closed.|| !!!!Tips & Tricks: None. !!!!Sample Code: C# string infFile = <INF file full path>; uint ErrorLine = 0; IntPtr infHandle = SetupOpenInfFile(infFile, null, INF_STYLE_OLDNT | INF_STYLE_WIN4, out ErrorLine); int iCode = Marshal.GetLastWin32Error(); if (infHandle.ToInt64() != INVALID_HANDLE_VALUE) { Console.WriteLine("INF file was opened successfully."); INFCONTEXT Context = new INFCONTEXT(); if (SetupFindFirstLine(infHandle, "Manufacturer", null, ref Context) == true) { Console.WriteLine("Manufacturers list:"); string manufacturerName = ""; manufacturerName = manufacturerName.PadLeft(256, ' '); Int32 requiredSize = manufacturerName.Length; SetupGetStringField(ref Context, 1, manufacturerName, manufacturerName.Length, out requiredSize); manufacturerName = manufacturerName.Substring(0, requiredSize-1); Console.WriteLine(manufacturerName); while(SetupFindNextLine(ref Context, out Context) == true) { manufacturerName = manufacturerName.PadLeft(256, ' '); requiredSize = manufacturerName.Length; SetupGetStringField(ref Context, 1, manufacturerName, manufacturerName.Length, out requiredSize); manufacturerName = manufacturerName.Substring(0, requiredSize - 1); Console.WriteLine(manufacturerName); } } else { Console.WriteLine("Can't find [Manufacturer] section."); } SetupCloseInfFile(infHandle); } else { Console.WriteLine("Failed to open INF file. Error code - {0}.", iCode); if (ErrorLine != 0) { Console.WriteLine("Failure line - {0}.", ErrorLine); } } VB Dim infFile As String = <INF file full path> Dim ErrorLine As UInt32 = 0 Dim infHandle As IntPtr = SetupOpenInfFile(infFile, Nothing, INF_STYLE_OLDNT Or INF_STYLE_WIN4, ErrorLine) Dim iCode As Integer = Marshal.GetLastWin32Error() If infHandle.ToInt64() <> INVALID_HANDLE_VALUE Then Console.WriteLine("INF file was opened successfully.") Dim Context As INFCONTEXT = New INFCONTEXT() If SetupFindFirstLine(infHandle, "Manufacturer", Nothing, Context) = True Then Console.WriteLine("Manufacturers list:") Dim manufacturerName As String = "" manufacturerName = manufacturerName.PadLeft(256, " "c) Dim requiredSize As Int32 = manufacturerName.Length SetupGetStringField(Context, 1, manufacturerName, manufacturerName.Length, requiredSize) manufacturerName = manufacturerName.Substring(0, requiredSize - 1) Console.WriteLine(manufacturerName) While SetupFindNextLine(Context, Context) = True manufacturerName = manufacturerName.PadLeft(256, " "c) requiredSize = manufacturerName.Length SetupGetStringField(Context, 1, manufacturerName, manufacturerName.Length, requiredSize) manufacturerName = manufacturerName.Substring(0, requiredSize - 1) Console.WriteLine(manufacturerName) End While Else Console.WriteLine("Can't find [Manufacturer] section.") End If SetupCloseInfFile(infHandle) Else Console.WriteLine("Failed to open INF file. Error code - {0}.", iCode) If ErrorLine <> 0 Then Console.WriteLine("Failure line - {0}.", ErrorLine) End If End If Documentation: SetupCloseInfFile@msdn on MSDN
Edit setupapi.SetupClo...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.