Registrieren und Aufheben der Registrierung eines Vorgangsregionhandlers
Ein ACPI-Gerätefunktionstreiber registriert einen Vorgangsregionshandler, indem Er RegisterOpRegionHandler aufruft und die folgenden Informationen angibt:
Das physische Geräteobjekt (PDO), das das ACPI-Gerät darstellt, das die Vorgangsregion definiert.
Die Art des Zugriffs, die roh oder gekocht sein kann .
Weitere Informationen finden Sie unter Zugreifen auf eine Vorgangsregion.
Der Typ des Regionsraums.
Der Anbieter sollte einen vom Hersteller definierten Wert von 0x80 bis 0xFF angeben. (Werte, die kleiner als 0x80 werden durch die ACPI-Spezifikation definiert und sind für die interne Verwendung reserviert.)
Ein Zeiger auf den Vorgangsbereichshandler des Treibers.
Der ACPI-Treiber greift auf eine Vorgangsregion zu, indem er den Vorgangsregionshandler des Treibers aufruft.
Ein Zeiger auf den Kontext der Vorgangsregion.
Der Vorgangsregionskontext ist gerätespezifisch und wird nur vom Funktionstreiber verwendet. Wenn der ACPI-Treiber den Vorgangsregionshandler aufruft, übergibt er den Vorgangsregionskontext zurück an den Handler. In der Regel handelt es sich um die Geräteerweiterung des funktionalen Geräteobjekts (Functional Device Object, FDO).
RegisterOpRegionHandler gibt nur dann ein Vorgangsregionsobjekt zurück, das der Funktionstreiber zum eindeutigen Identifizieren des Vorgangsregionhandlers verwendet, wenn der Treiber die Registrierung des Handlers aufhebt.
In der Regel registriert ein Treiber einen Vorgangsregionenhandler in der Plug & Play Dispatchroutine des Treibers, nachdem er eine FDO als Reaktion auf eine IRP_MN_START_DEVICE-Anforderung gestartet hat. Der Treiber muss den Handler registrieren, nachdem er den Kontext der Vorgangsregion des Handlers zugeordnet hat. Wenn der Treiber eine vom Hersteller definierte Geräteschnittstelle erstellt, sollte der Treiber die Geräteschnittstelle aktivieren, nachdem er den Handler registriert hat.
Ein ACPI-Gerätefunktionstreiber hebt die Registrierung eines Vorgangsregionhandlers auf, indem Er DeRegisterOpRegionHandler aufruft und die folgenden Informationen angibt:
Die PDO, die das ACPI-Gerät darstellt, das die Vorgangsregion definiert.
Das Vorgangsregionsobjekt, das der ACPI-Treiber zurückgegeben hat, als der Treiber den Vorgangsregionenhandler registriert hat. Dieses Objekt identifiziert eindeutig den Vorgangsregionshandler.
In der Regel hebt ein Treiber die Registrierung eines Vorgangsregionshandlers in der Plug & Play Dispatchroutine des Treibers auf, bevor er eine FDO als Reaktion auf eine IRP_MN_STOP_DEVICE Anforderung beendet. Der Treiber muss die Registrierung des Handlers aufheben, bevor er den Vorgangsregionskontext des Handlers freigibt. Wenn der Treiber eine vom Hersteller definierte Geräteschnittstelle erstellt, sollte der Treiber die Geräteschnittstelle deaktivieren, bevor die Registrierung des Handlers aufgehoben wird.