Dela via


Skapa KMDF-miniportdrivrutiner

Vissa miniportdrivrutiner kan använda Kernel-Mode Driver Framework, om port-/miniportarkitekturen tillåter att miniportdrivrutinen kommunicerar med andra drivrutiner med hjälp av WDM- eller ramverksgränssnitt. Till exempel kan NDIS-miniportdrivrutiner med en WDM-nedre kant använda ramverket för att implementera den nedre kanten.

Om du vill att miniportdrivrutinen ska använda ramverket måste drivrutinen:

  • Ange flaggan WdfDriverInitNoDispatchOverride i DriverInitFlags medlem i drivrutins WDF_DRIVER_CONFIG struktur innan du anropar WdfDriverCreate. Genom att ange den här flaggan görs det möjligt för portdrivrutinen att, i stället för att ramverket, fånga upp I/O-begärandepaket (IRP:er) som I/O-hanteraren har dirigerat till drivrutinen.

  • Anropa WdfDeviceMiniportSkapa i stället för WdfDeviceSkapa för att skapa ramverksenhetsobjekt för miniportdrivrutinens enheter. Miniportdrivrutinen ska anropa WdfDeviceMiniportSkapa när portdrivrutinen informerar den om att en enhet är tillgänglig.

  • Anropa WdfObjectDelete för att ta bort enhetsobjektet som WdfDeviceMiniportSkapa skapar när drivrutinen fastställer att enheten har tagits bort. (Eftersom drivrutinen har angett flaggan WdfDriverInitNoDispatchOverride kan ramverket inte avgöra när enheten tas bort och kan inte ta bort enhetsobjektet.)

  • Anropa WdfDriverMiniportUnload när portdrivrutinen informerar miniportdrivrutinen om att den kommer att avlastas.

En miniportdrivrutin kan endast använda ramverket om den underliggande enheten stöder Plug and Play (PnP). Miniportdrivrutiner kan inte använda ramverkets kontrollenhetsobjekt.

Begränsningar gäller för de enhetsobjekt som metoden WdfDeviceMiniportCreate skapar. En lista över dessa begränsningar finns i WdfDeviceMiniportCreate.