Naja, so allgemein kann man dir da immernoch nicht helfen - wie nen Interface aussieht hängt nunmal doch _sehr_ stark an der Restlichen Systemarchitektur - Mikrokernel oder (modular?) monolithisch. In einem Mikrokernel wäre nen Treiberinterface z.b. meistens sehr unabhängig, da kann einfach der vorhandene Messaging- bzw RPC-Mechanismus genutzt werden. In nem Monolithen wäre die Bereitstellung von Interrupts wohl die praktikablere Variante, Callgates in der GDT sind natürlich auch möglich (ich wüsste aber nicht dass hier jemand diesen Weg gewählt hätte, dürfte imho auch mehr Aufwand sein - Adressverwaltung, statische GDT-Einträge laden und bei Codeänderung vllt. anpassen...).
Für weitere Auskünfte bitte etwas mehr Infos was du genau vorhast, und was als Grundstruktur vorhanden ist