Dela via


Windows Kernel-Mode PRM-bibliotek (Platform Runtime Mechanism)

Platform Runtime Mechanism (PRM) är ett GUID-baserat gränssnitt som gör det möjligt för drivrutiner att köra hanterare som är förinstallerade i UEFI-inbyggd programvara (Unified Extensible Firmware Interface). PRM erbjuder funktioner som liknar SMI-anrop (System Management Interrupt) i System Management Mode (SMM), men det är säkrare.

Under systemkörningen kan den inbyggda programvaran innehålla flera PRM-moduler, var och en med en unik uppsättning hanterare.

Drivrutiner kan anropa PRM-hanterare för lågnivååtgärder, till exempel kontrollera maskinvarukomponenter, hantera termiska tillstånd eller avancerad energisparfunktioner.

Följ de här stegen för att kontrollera tillgängligheten för en specifik hanterare och för att köra den. Du hittar en exempelimplementering av den här processen i PrmFunc-exemplet.

  1. Hämta en pekare till en PRM_INTERFACE struktur genom att anropa rutinen ExGetPrmInterface . Den här strukturen innehåller pekare till PRM-åtgärdsrutinerna.

  2. Synkronisera mot potentiella körningsuppdateringar av PRM-modulen genom att anropa rutinen PRM_LOCK_MODULE . Lås- och upplåsningsanrop är nödvändiga för transaktionsserier med PRM-hanterare, men vi rekommenderar vanligtvis att du använder dem.

  3. Kontrollera förekomsten av den angivna PRM-hanteraren med hjälp av PRM_QUERY_HANDLER-rutinen.

  4. Om frågan lyckas, anropar du PRM-hanteraren genom att anropa rutinen PRM_INVOKE_HANDLER. Ange GUID och parameterbufferten, som ska innehålla parametrarna för PRM-hanteraren. Utdataparametern EfiStatus anger status för hanteraranropet.

  5. Om du tidigare anropade PRM_LOCK_MODULE släpper du PRM-gränssnittsobjektet genom att anropa PRM_UNLOCK_MODULE-rutinen .

Se även

Mer information finns i PRM-specifikationen.