Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Ditt program för enhetsinstallation bör avgöra om andra enhetsinstallationsaktiviteter pågår innan de utför sina installationer. För att göra den här bestämningen bör programmet för enhetsinstallation anropa CMP_WaitNoPendingInstallEvents, vanligtvis med noll timeout-värde. Om returvärdet från den här funktionen anger att andra installationsaktiviteter väntar (till exempel guiden Hittad ny maskinvara kan vara aktiv) bör enhetsinstallationsprogrammet avslutas.
För att göra enhetsinstallationsprogrammet kompatibelt med plattformar som inte stöder CMP_WaitNoPendingInstallEvents bör programmet innehålla följande kod:
BOOL
IsDeviceInstallInProgress (VOID)
{
HMODULE hModule;
CMP_WAITNOPENDINGINSTALLEVENTS_PROC pCMP_WaitNoPendingInstallEvents;
hModule = GetModuleHandle(TEXT("setupapi.dll"));
if(!hModule)
{
// Should never happen since we're linked to SetupAPI, but...
return FALSE;
}
pCMP_WaitNoPendingInstallEvents =
(CMP_WAITNOPENDINGINSTALLEVENTS_PROC)GetProcAddress(hModule,
"CMP_WaitNoPendingInstallEvents");
if(!pCMP_WaitNoPendingInstallEvents)
{
// We're running on a release of the operating system that doesn't supply this function.
// Trust the operating system to suppress AutoRun when appropriate.
return FALSE;
}
return (pCMP_WaitNoPendingInstallEvents(0) == WAIT_TIMEOUT);
}
int
__cdecl
_tmain(IN int argc, IN PTCHAR argv[])
{
if(IsDeviceInstallInProgress()) {
//
// We don't want to start right now. Instead, our
// device co-installer will invoke this application
// (if necessary) during finish-install processing.
//
return -1;
}
.
.
}
Användningen av den här koden baseras på antagandet att om en plattform inte stöder CMP_WaitNoPendingInstallEvents startar inte plattformen AutoRun om installationsaktiviteter pågår.
En exempelanvändning av den här koden finns i installationspaketet för brödrosten under underkatalogen src\general\toaster för Windows Driver Kit (WDK).