Программная установка драйвера с использованием файла INF c ++

Может кто-нибудь здесь, пожалуйста, дайте мне знать, как установить сторонние драйверы устройств программно, если предоставлены все необходимые файлы, то есть файл inf, .sys и т. д. В минимальная операционная система, на которой ДОЛЖНО работать это решение, - Windows2000.

Я попытался скопировать файл .inf в папку Win Folder \ INF и файл sys в папку Win \ system32 \ drivers, но каждый раз, когда подключаете устройство, окна появляется пользовательский интерфейс «Найдено новое оборудование», которого я пытаюсь избежать.

Ниже показано то, что я пробовал, но функция возвращает ошибку 87 (параметр неверен) .

HINF HInf;                
UINT ErrorLine;            
BOOL bRes = FALSE;
PBOOL FileWasInUse = FALSE;

LPCSTR szSourceFileName = _T("C:\\Drivers_HypercomP1320\\hypvcpusb.inf");
LPCSTR szInfFileName  = _T("hypvcpusb.inf");
PVOID Context = NULL;

HInf = SetupOpenInfFile ( szSourceFileName, NULL, INF_STYLE_WIN4, &ErrorLine);          

LPCSTR  SourceFile = ("hypvcp.sys");
LPCSTR SourcePathRoot = _T("C:\\Drivers_HypercomP1320");
LPCSTR DestinationName = _T("C:\\WINDOWS\\system32\\drivers\\hypvcp.sys");

bRes = SetupInstallFileEx ( HInf, NULL, SourceFile, SourcePathRoot, DestinationName, SP_COPY_FORCE_IN_USE,
                            (PSP_FILE_CALLBACK)CopyMsgHandler, Context, FileWasInUse);   

DWORD dwVal = GetLastError();

SetupCloseInfFile(HInf);


// Callback function
UINT CopyMsgHandler (UINT Context, UINT Notification,UINT_PTR Param1, UINT_PTR Param2)
{
    UINT rtnValue = NO_ERROR;
    return rtnValue;
}

Спасибо.

]
5
задан Aristos 24 June 2011 в 19:58
поделиться