Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Uw apparaatinstallatietoepassing moet bepalen of andere installatieactiviteiten van apparaten worden uitgevoerd voordat de installaties worden uitgevoerd. Om dit te bepalen, moet de installatietoepassing van het apparaat CMP_WaitNoPendingInstallEvents aanroepen, meestal met een time-outwaarde van nul. Als de retourwaarde van deze functie aangeeft dat andere installatieactiviteiten in behandeling zijn (de wizard Gevonden nieuwe hardware kan bijvoorbeeld actief zijn), moet de installatietoepassing van het apparaat worden afgesloten.
Om ervoor te zorgen dat uw apparaatinstallatietoepassing compatibel is met platforms die geen ondersteuning bieden voor CMP_WaitNoPendingInstallEvents, moet de toepassing de volgende code bevatten:
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;
}
.
.
}
Het gebruik van deze code is gebaseerd op het uitgangspunt dat als een platform geen ondersteuning biedt voor CMP_WaitNoPendingInstallEvents, het platform AutoRun niet start als er installatieactiviteiten worden uitgevoerd.
Zie het toaster installatiepakket onder de src\general\toaster submap van de Windows Driver Kit (WDK) voor een voorbeeld van het gebruik van deze code.