Line 40:
Line 40:
Translate parameters are modified/translated transparently by the kernel. They are used to transfer handles/buffers between the different processes.
Translate parameters are modified/translated transparently by the kernel. They are used to transfer handles/buffers between the different processes.
−
Translate parameters comes in pairs of two words, one descriptor and one value.
+
The type of parameter is described by the bits 1-3 in the translation descriptor. Parameter types accepted by the kernel are: 0, 1, (2?), 5, 6, 7.
+
+
The number of parameters covered by a descriptor is type-dependent:
+
Type 0:
+
length = (desc >> 26) + 1
+
Type 1, (2?), 5, 6, 7:
+
length = 1
+
+
Type 0 does the following:
+
if desc & 0x30 == 0x20:
+
write process id to value
+
else:
+
translate handle
+
if desc & 0x30 == 0x10:
+
close handle for caller
+
+
--
{| class="wikitable" border="1"
{| class="wikitable" border="1"