¿Cómo se implementa un controlador basado .inf?
-
21-08-2019 - |
Pregunta
Me gustaría implementar un controlador USB basado .inf con mi instalador.
Creo que la .inf tiene que ser colocado en %SystemRoot%\inf
, pero también hay un .cat (certificación WHQL supongo?), Y .sys. ¿Qué hago con eso?
EDIT: Se resuelve, gracias a las respuestas útiles. Yo era capaz de P / invocar la función, por lo que tienen una acción posterior a la instalación que se ejecuta el siguiente código:
namespace DriverPackageInstallAction
{
static class Program
{
[DllImport("DIFXApi.dll", CharSet = CharSet.Unicode)]
public static extern Int32 DriverPackagePreinstall(string DriverPackageInfPath, Int32 Flags);
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
DirectoryInfo assemblyDir = new DirectoryInfo(Application.ExecutablePath);
DirectoryInfo installDir = assemblyDir.Parent;
int result = DriverPackagePreinstall(installDir.FullName + @"\Driver\XYZ.inf", 0);
if (result != 0)
MessageBox.Show("Driver installation failed.");
}
}
}
Solución
Me gustaría empezar por leer sobre SetupAPI y DIFx . El kit incluye el controlador de Windows de ambos, incluyendo una fusión basada en DIFx módulo y una biblioteca basada en WiX DIFx. La fuente de la línea de comandos devcon utilidad, que se basa en SetupAPI , también se incluye en las muestras WDK.
Otros consejos
Se podría intentar pedir la cáscara para instalarlo para usted:
%SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 YOUR_FILE.inf
Pero estoy 100% seguro de que hay una mejor manera ...