Dela via


Använda anpassad PnP-avisering

En drivrutin kan använda meddelandemekanismen för enhetsändring för att meddelas om anpassade händelser på en enhet.

Programmeraren som definierar den anpassade händelsen måste göra följande:

  1. Definiera ett nytt GUID för den anpassade händelsen.

    Generera GUID med Uuidgen eller Guidgen (som ingår i Microsoft Windows SDK). Publicera GUID i en lämplig rubrikfil och dokumentation.

  2. Skriv kod för att utlösa den anpassade händelsen.

    I kernelläge anropar en drivrutin IoReportTargetDeviceChange med det anpassade GUID:t och en pekare till enhetens PDO. Anpassade händelser kan bara utlösas från kärnläge.

En drivrutinsskrivare använder anpassade meddelanden med en procedur som liknar följande:

  1. Drivrutinen (eller programmet) registrerar sig för att få avisering om den anpassade händelsen.

    I kärnläge anropar en drivrutin IoRegisterPlugPlayNotification och registrerar sig för en EventCategoryTargetDeviceChange på enheten.

    I användarläge registreras ett program med RegisterDeviceNotification. Mer information finns i Windows SDK.

  2. En komponent i kärnläge utlöser den anpassade händelsen.

  3. PnP-chefen anropar meddelanderutiner som registrerats på enheten.

    PnP-chefen anropar de registrerade rutinerna för återanrop i användarläge och anropar sedan återanropsrutinerna i kernelläge.

  4. När aviseringen i användarläge har slutförts svarar rutinerna för återanrop av drivrutinsmeddelanden i kernelläge på den anpassade händelsen.

    Se Riktlinjer för att skriva rutiner för återanrop av PnP-meddelanden för allmänna riktlinjer för rutiner för återanrop av meddelanden. Utöver dessa riktlinjer får en anpassad rutin för återanrop inte öppna en referens till en enhet inifrån rutintråden för återanrop.