as_lw_det64 -Kernel-Service

Zweck

Hebt die Zuordnung einer Region im aktuellen Benutzeradressraum auf und hebt die Zuordnung einer Region auf, die mit dem as_lw_att64 -Kernel-Service zugeordnet wurde.

Syntax

#include <sys/errno.h>
#include <sys/adspace.h>
#include <sys/xmem.h>
int as_lw_det64 (dp, addr, length)
xmem* dp;
void* addr;
size_t length;

Parameter

Element Beschreibung
dp Der speicherübergreifende Deskriptor, der den angehängten virtuellen Speicher beschreibt.
addr Gibt die erste effektive Adresse der Region an, die freigegeben werden soll.
Länge Gibt die Länge der Region an, die freigegeben werden soll.

Beschreibung

Anmerkung: Der Kernel-Service as_lw_det64 sollte mit Vorsicht verwendet werden. Lesen Sie die Dokumentation zu diesem und den anderen Lightweight-Services (as_lw_att64 und as_lw_pool_init) sorgfältig, bevor Sie dies tun. Es besteht die Gefahr, dass unzulässige Datenzugriffe zugelassen werden, wenn diese Dienste nicht ordnungsgemäß genutzt werden.

Der as_lw_det64 -Kernel-Service hebt die Zuordnung des virtuellen Speichers zu der Region ab der mit dem Parameter Adresse angegebenen effektiven Adresse auf. Dieser Service (und nur dieser Service) muss verwendet werden, um die Zuordnung von Regionen aufzuheben, die vom as_lw_att64 -Kernelservice zugeordnet wurden. Sie muss von demselben Thread aufgerufen werden wie der as_lw_att64 -Kernel-Service. Der Parameter Adresse muss der Wert sein, der vom as_lw_att64 -Kernel-Service zurückgegeben wird, und der Parameter DP und der Parameter Länge müssen mit DP und Länge übereinstimmen, die an ihn übergeben werden. Der Kernel-Service xmdetach (Zuordnung aufheben) darf nicht aufgerufen werden, um den Parameter DP freizugeben, bis alle ausstehenden Verbindungen des Parameters DP , die den Kernel-Service as_lw_att64 verwenden, mit dem Kernel-Service as_lw_det64 freigegeben wurden.

Der Kernel-Service as_lw_det64 kann nicht verwendet werden, um die Zuordnung einer Region aufzuheben, die nicht vom Kernel-Service as_lw_att64 zugeordnet wurde.

Der as_lw_det64 -Kernel-Service funktioniert nur für 64-Bit-Benutzeradressräume ordnungsgemäß. Es funktioniert nicht für Kernelprozesse (kprocs).

Anmerkung: Dieser Service arbeitet nur mit dem Adressraum des aktuellen Prozesses. Sie darf nicht für einen anderen Adressraum ausgeführt werden.

Ausführungsumgebung

Der as_lw_det64 -Kernel-Service kann nur aus der Prozessumgebung aufgerufen werden.

Rückgabewerte

Element Beschreibung
0 Die Zuordnung der Region wurde erfolgreich aufgehoben und die Zuordnung aufgehoben.
EINVAL Es wurde versucht, die Zuordnung einer Region aufzuheben, die nicht freigegeben werden sollte.
ENOSYS Der Service wurde von einem 32-Bit-Prozess aufgerufen.
ENOMEM Diesem Thread sind keine schlanken Ressourcen zugeordnet.
EIO Zeigt einen Fehler des Lightweight-Subsystems an. Der Prozess sollte die Verwendung der Lightweight-Kernel-Services einstellen.
EPERM Wird von einem Benutzerthread aufgerufen, der nicht 1: 1 mit einem Kernel-Thread ist.

Implementierungsspezifikationen

Der as_lw_det64 -Kernel-Service ist Teil von Base Operating System (BOS) Runtime.