سؤال

أرغب في نشر برنامج تشغيل USB يستند إلى .inf مع برنامج التثبيت الخاص بي.

أعتقد أنه يجب وضع ملف .inf فيه %SystemRoot%\inf, ، ولكن هناك أيضًا ملفات .cat (أعتقد أنها شهادة WHQL؟) وملفات .sys.ماذا أفعل مع هؤلاء؟

يحرر: تم حلها، وذلك بفضل الإجابات المفيدة.لقد تمكنت من استدعاء الوظيفة P/، لذلك لدي إجراء ما بعد التثبيت والذي يقوم بتشغيل الكود التالي:

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.");
        }
    }
}
هل كانت مفيدة؟

المحلول

سأبدأ بالقراءة عن واجهة برمجة التطبيقات و ديفكس.تتضمن مجموعة أدوات تشغيل Windows عينات كلاهما، بما في ذلك وحدة الدمج المستندة إلى DIFx ومكتبة WiX المستندة إلى DIFx.المصدر لسطر الأوامر devcon يتم أيضًا تضمين الأداة المساعدة، التي تعتمد على SetupAPI، في نماذج WDK.

نصائح أخرى

يمكنك محاولة مطالبة Shell بتثبيته لك:

%SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 YOUR_FILE.inf

لكني متأكد 100% أن هناك طريقة أفضل..

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top