Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver arkitekturen för USB-enhetsemulering (UDE), som emulerar beteendet hos en USB-värdstyrenhet och en ansluten enhet. Med UDE kan en icke-USB-maskinvara kommunicera med de övre lagren med hjälp av USB-drivrutinerna på värdsidan i Windows.
UDE-drivrutiner
I föregående bild,
- USB-hubbdrivrutinen (Usbhub3.sys) är ett ramverk för drivrutiner för kernelläge (KMDF). Hubbdrivrutinen ansvarar för att hantera USB-hubbar och deras portar, uppräkning och skapande av fysiska enhetsobjekt (PDOs) för USB-enheter och andra hubbar som kan vara anslutna till deras underordnade portar.
- USB-värdstyrenhetstillägget (Ucx01000.sys) är ett abstraktionslager till hubbdrivrutinen i stacken och ger en allmän mekanism för köbegäranden till den underliggande drivrutinen för värdstyrenheten.
- UDE-klasstillägget (UdeCx) utför anrop till UDE-klientdrivrutinen via återanropsfunktioner som implementerats av klienten. Klasstillägget innehåller rutiner för klientdrivrutiner för att skapa UDE-objekt och hantera dem.
- UDE-klientdrivrutinen hanterar maskinvaran och interagerar med både Windows-drivrutinsramverket (WDF) och UDE-API:er. Den övre kanten kommunicerar med både WDF- och UDE-klasstillägget med hjälp av USB-baserade strukturer. Dess nedre kant kommunicerar med maskinvaran med hjälp av maskinvarans gränssnitt.
- Anpassad maskinvara: Till exempel kan en PCI-maskinvara emuleras till att fungera som en USB-enhet.
UDE-enhetsnoder
Här är enhetsstackarna som har lästs in för klientdrivrutinen UDE: