IoGetDeviceObjectPointer / ShareAccess


I have two sorts of NT KM drivers: Upper and Lower drivers.

In an upper driver, I use IoGetDeviceObjectPointer() to make a connection
to a lower driver. IoGetDeviceObjectPointer() disposes a Create request
(IRP_MJ_CREATE) for the lower driver.

My problem:
In the lower driver the Create.ShareAccess parameter is always 0. This
parameter will be checked in the callback function for the IRP_MJ_CREATE
requests. If ShareAccess=0 the lower driver performs only the first call of
IRP_MJ_CREATE - all further IoGetDeviceObjectPointer() calls from upper
drivers fails.

My question:
How can I achieve that the Create.ShareAccess parameter in the lower driver
is 1 for a IoGetDeviceObjectPointer() request from an upper driver ?

I have made some experiments with the DesiredAccess parameter of the
IoGetDeviceObjectPointer() function but nothing works.

Unfortunately I cannot make any modifications on the lower drivers.