Signed-off-by: Jacek Caban jacek@codeweavers.com ---
This patch series implements a way for ntoskrnl to reflect server objects in its address space. The mapping as well as life time management is done on server side, which informs client when it's safe its client side struct. Client side has a way to notify server that it needs to keep a reference, providing a way to hold server reference. Client may also get a handle from its object and use it to perform an implementation using already existing mechanisms.
The last patch of this series uses then new infrastructure to implement event object. It's pretty straightforward. I have patches for more object as well moving existing device_file and device objects to use the new infrastructure in a queue.
server/device.c | 46 +++++++++++++++++++++++++++++++++++++++++++--- server/object.c | 2 ++ server/object.h | 2 ++ 3 files changed, 47 insertions(+), 3 deletions(-)
On 2/27/19 3:12 PM, Jacek Caban wrote:
Signed-off-by: Jacek Caban jacek@codeweavers.com
This patch series implements a way for ntoskrnl to reflect server objects in its address space. The mapping as well as life time management is done on server side, which informs client when it's safe its client side struct. Client side has a way to notify server that it needs to keep a reference, providing a way to hold server reference. Client may also get a handle from its object and use it to perform an implementation using already existing mechanisms.
The last patch of this series uses then new infrastructure to implement event object. It's pretty straightforward. I have patches for more object as well moving existing device_file and device objects to use the new infrastructure in a queue.
server/device.c | 46 +++++++++++++++++++++++++++++++++++++++++++--- server/object.c | 2 ++ server/object.h | 2 ++ 3 files changed, 47 insertions(+), 3 deletions(-)
After second thought, I'd like to revisit the idea of making it per-object type opt-in via object_ops. I will rework the series when I have time, but feedback on the general idea would be welcomed.
Jacek