mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 19:26:32 +00:00
[NDK][NTOS] Change Object callback types to NT6 style
This is required to support the NT6 access flags THREAD_QUERY_LIMITED_INFORMATION and THREAD_SET_LIMITED_INFORMATION.
This commit is contained in:
@@ -265,7 +265,8 @@ CmpSecurityMethod(IN PVOID ObjectBody,
|
||||
IN OUT PULONG BufferLength,
|
||||
IN OUT PSECURITY_DESCRIPTOR *OldSecurityDescriptor,
|
||||
IN POOL_TYPE PoolType,
|
||||
IN PGENERIC_MAPPING GenericMapping)
|
||||
IN PGENERIC_MAPPING GenericMapping,
|
||||
IN KPROCESSOR_MODE AccessMode)
|
||||
{
|
||||
PCM_KEY_CONTROL_BLOCK Kcb;
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
|
||||
+12
-2
@@ -47,6 +47,7 @@ PKWIN32_SESSION_CALLOUT ExpDesktopObjectClose = NULL;
|
||||
|
||||
/* FUNCTIONS ****************************************************************/
|
||||
|
||||
static
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ExpWin32SessionCallout(
|
||||
@@ -108,6 +109,7 @@ ExpWin32SessionCallout(
|
||||
return Status;
|
||||
}
|
||||
|
||||
static
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
ExpDesktopOkToClose( IN PEPROCESS Process OPTIONAL,
|
||||
@@ -130,6 +132,7 @@ ExpDesktopOkToClose( IN PEPROCESS Process OPTIONAL,
|
||||
return NT_SUCCESS(Status);
|
||||
}
|
||||
|
||||
static
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
ExpWindowStationOkToClose( IN PEPROCESS Process OPTIONAL,
|
||||
@@ -152,6 +155,7 @@ ExpWindowStationOkToClose( IN PEPROCESS Process OPTIONAL,
|
||||
return NT_SUCCESS(Status);
|
||||
}
|
||||
|
||||
static
|
||||
VOID
|
||||
NTAPI
|
||||
ExpWinStaObjectDelete(PVOID DeletedObject)
|
||||
@@ -166,6 +170,7 @@ ExpWinStaObjectDelete(PVOID DeletedObject)
|
||||
&Parameters);
|
||||
}
|
||||
|
||||
static
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ExpWinStaObjectParse(IN PVOID ParseObject,
|
||||
@@ -197,6 +202,8 @@ ExpWinStaObjectParse(IN PVOID ParseObject,
|
||||
ExpWindowStationObjectParse,
|
||||
&Parameters);
|
||||
}
|
||||
|
||||
static
|
||||
VOID
|
||||
NTAPI
|
||||
ExpDesktopDelete(PVOID DeletedObject)
|
||||
@@ -211,12 +218,14 @@ ExpDesktopDelete(PVOID DeletedObject)
|
||||
&Parameters);
|
||||
}
|
||||
|
||||
static
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ExpDesktopOpen(IN OB_OPEN_REASON Reason,
|
||||
IN KPROCESSOR_MODE AccessMode,
|
||||
IN PEPROCESS Process OPTIONAL,
|
||||
IN PVOID ObjectBody,
|
||||
IN ACCESS_MASK GrantedAccess,
|
||||
IN PACCESS_MASK GrantedAccess,
|
||||
IN ULONG HandleCount)
|
||||
{
|
||||
WIN32_OPENMETHOD_PARAMETERS Parameters;
|
||||
@@ -224,7 +233,7 @@ ExpDesktopOpen(IN OB_OPEN_REASON Reason,
|
||||
Parameters.OpenReason = Reason;
|
||||
Parameters.Process = Process;
|
||||
Parameters.Object = ObjectBody;
|
||||
Parameters.GrantedAccess = GrantedAccess;
|
||||
Parameters.GrantedAccess = *GrantedAccess;
|
||||
Parameters.HandleCount = HandleCount;
|
||||
|
||||
return ExpWin32SessionCallout(ObjectBody,
|
||||
@@ -232,6 +241,7 @@ ExpDesktopOpen(IN OB_OPEN_REASON Reason,
|
||||
&Parameters);
|
||||
}
|
||||
|
||||
static
|
||||
VOID
|
||||
NTAPI
|
||||
ExpDesktopClose(IN PEPROCESS Process OPTIONAL,
|
||||
|
||||
@@ -730,7 +730,8 @@ CmpSecurityMethod(
|
||||
IN OUT PULONG CapturedLength,
|
||||
IN OUT PSECURITY_DESCRIPTOR *ObjectSecurityDescriptor,
|
||||
IN POOL_TYPE PoolType,
|
||||
IN PGENERIC_MAPPING GenericMapping
|
||||
IN PGENERIC_MAPPING GenericMapping,
|
||||
IN KPROCESSOR_MODE AccessMode
|
||||
);
|
||||
|
||||
NTSTATUS
|
||||
|
||||
@@ -1193,7 +1193,8 @@ IopGetSetSecurityObject(
|
||||
IN OUT PULONG BufferLength,
|
||||
OUT PSECURITY_DESCRIPTOR *OldSecurityDescriptor,
|
||||
IN POOL_TYPE PoolType,
|
||||
IN OUT PGENERIC_MAPPING GenericMapping
|
||||
IN OUT PGENERIC_MAPPING GenericMapping,
|
||||
IN KPROCESSOR_MODE AccessMode
|
||||
);
|
||||
|
||||
NTSTATUS
|
||||
|
||||
@@ -517,7 +517,8 @@ SeDefaultObjectMethod(
|
||||
_Inout_opt_ PULONG ReturnLength,
|
||||
_Inout_opt_ PSECURITY_DESCRIPTOR *OldSecurityDescriptor,
|
||||
_In_ POOL_TYPE PoolType,
|
||||
_In_ PGENERIC_MAPPING GenericMapping);
|
||||
_In_ PGENERIC_MAPPING GenericMapping,
|
||||
_In_ KPROCESSOR_MODE AccessMode);
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
|
||||
@@ -1655,7 +1655,8 @@ IopGetSetSecurityObject(IN PVOID ObjectBody,
|
||||
IN OUT PULONG BufferLength,
|
||||
IN OUT PSECURITY_DESCRIPTOR *OldSecurityDescriptor,
|
||||
IN POOL_TYPE PoolType,
|
||||
IN OUT PGENERIC_MAPPING GenericMapping)
|
||||
IN OUT PGENERIC_MAPPING GenericMapping,
|
||||
IN KPROCESSOR_MODE AccessMode)
|
||||
{
|
||||
IO_STATUS_BLOCK IoStatusBlock;
|
||||
PIO_STACK_LOCATION StackPtr;
|
||||
|
||||
@@ -995,13 +995,12 @@ ObpIncrementHandleCount(IN PVOID Object,
|
||||
{
|
||||
/* Call it */
|
||||
ObpCalloutStart(&CalloutIrql);
|
||||
ACCESS_MASK GrantedAccess = AccessState ? AccessState->PreviouslyGrantedAccess : 0;
|
||||
Status = ObjectType->TypeInfo.OpenProcedure(OpenReason,
|
||||
ProbeMode,
|
||||
Process,
|
||||
Object,
|
||||
AccessState ?
|
||||
AccessState->
|
||||
PreviouslyGrantedAccess :
|
||||
0,
|
||||
&GrantedAccess,
|
||||
ProcessHandleCount);
|
||||
ObpCalloutEnd(CalloutIrql, "Open", ObjectType, Object);
|
||||
|
||||
@@ -1223,9 +1222,10 @@ ObpIncrementUnnamedHandleCount(IN PVOID Object,
|
||||
/* Call it */
|
||||
ObpCalloutStart(&CalloutIrql);
|
||||
Status = ObjectType->TypeInfo.OpenProcedure(ObCreateHandle,
|
||||
AccessMode,
|
||||
Process,
|
||||
Object,
|
||||
*DesiredAccess,
|
||||
DesiredAccess,
|
||||
ProcessHandleCount);
|
||||
ObpCalloutEnd(CalloutIrql, "Open", ObjectType, Object);
|
||||
|
||||
|
||||
@@ -195,7 +195,8 @@ ObpDeleteObject(IN PVOID Object,
|
||||
NULL,
|
||||
&Header->SecurityDescriptor,
|
||||
0,
|
||||
NULL);
|
||||
NULL,
|
||||
ExGetPreviousMode());
|
||||
ObpCalloutEnd(CalloutIrql, "Security", ObjectType, Object);
|
||||
}
|
||||
|
||||
@@ -1706,7 +1707,8 @@ NtQueryObject(IN HANDLE ObjectHandle,
|
||||
&BasicInfo->SecurityDescriptorSize,
|
||||
&ObjectHeader->SecurityDescriptor,
|
||||
ObjectType->TypeInfo.PoolType,
|
||||
&ObjectType->TypeInfo.GenericMapping);
|
||||
&ObjectType->TypeInfo.GenericMapping,
|
||||
ExGetPreviousMode());
|
||||
}
|
||||
|
||||
/* Break out with success */
|
||||
|
||||
+10
-5
@@ -576,7 +576,8 @@ ObAssignSecurity(IN PACCESS_STATE AccessState,
|
||||
NULL,
|
||||
NULL,
|
||||
PagedPool,
|
||||
&Type->TypeInfo.GenericMapping);
|
||||
&Type->TypeInfo.GenericMapping,
|
||||
ExGetPreviousMode());
|
||||
ObpCalloutEnd(CalloutIrql, "Security", Type, Object);
|
||||
|
||||
/* Check for failure and deassign security if so */
|
||||
@@ -650,7 +651,8 @@ ObGetObjectSecurity(IN PVOID Object,
|
||||
&Length,
|
||||
&Header->SecurityDescriptor,
|
||||
Type->TypeInfo.PoolType,
|
||||
&Type->TypeInfo.GenericMapping);
|
||||
&Type->TypeInfo.GenericMapping,
|
||||
ExGetPreviousMode());
|
||||
ObpCalloutEnd(CalloutIrql, "Security", Type, Object);
|
||||
|
||||
/* Check for failure */
|
||||
@@ -672,7 +674,8 @@ ObGetObjectSecurity(IN PVOID Object,
|
||||
&Length,
|
||||
&Header->SecurityDescriptor,
|
||||
Type->TypeInfo.PoolType,
|
||||
&Type->TypeInfo.GenericMapping);
|
||||
&Type->TypeInfo.GenericMapping,
|
||||
ExGetPreviousMode());
|
||||
ObpCalloutEnd(CalloutIrql, "Security", Type, Object);
|
||||
|
||||
/* Check for failure */
|
||||
@@ -769,7 +772,8 @@ ObSetSecurityObjectByPointer(IN PVOID Object,
|
||||
NULL,
|
||||
&Header->SecurityDescriptor,
|
||||
Type->TypeInfo.PoolType,
|
||||
&Type->TypeInfo.GenericMapping);
|
||||
&Type->TypeInfo.GenericMapping,
|
||||
ExGetPreviousMode());
|
||||
}
|
||||
|
||||
/*++
|
||||
@@ -856,7 +860,8 @@ NtQuerySecurityObject(IN HANDLE Handle,
|
||||
&Length,
|
||||
&Header->SecurityDescriptor,
|
||||
Type->TypeInfo.PoolType,
|
||||
&Type->TypeInfo.GenericMapping);
|
||||
&Type->TypeInfo.GenericMapping,
|
||||
ExGetPreviousMode());
|
||||
|
||||
/* Dereference the object */
|
||||
ObDereferenceObject(Object);
|
||||
|
||||
+2
-1
@@ -356,7 +356,8 @@ SeDefaultObjectMethod(
|
||||
_Inout_opt_ PULONG ReturnLength,
|
||||
_Inout_ PSECURITY_DESCRIPTOR *OldSecurityDescriptor,
|
||||
_In_ POOL_TYPE PoolType,
|
||||
_In_ PGENERIC_MAPPING GenericMapping)
|
||||
_In_ PGENERIC_MAPPING GenericMapping,
|
||||
_In_ KPROCESSOR_MODE AccessMode)
|
||||
{
|
||||
PAGED_CODE();
|
||||
|
||||
|
||||
@@ -40,7 +40,8 @@ WmipSecurityMethod(
|
||||
_Inout_ PULONG CapturedLength,
|
||||
_Inout_ PSECURITY_DESCRIPTOR *ObjectSecurityDescriptor,
|
||||
_In_ POOL_TYPE PoolType,
|
||||
_In_ PGENERIC_MAPPING GenericMapping)
|
||||
_In_ PGENERIC_MAPPING GenericMapping,
|
||||
_In_ KPROCESSOR_MODE AccessMode)
|
||||
{
|
||||
PAGED_CODE();
|
||||
|
||||
|
||||
@@ -191,9 +191,10 @@ typedef VOID
|
||||
typedef NTSTATUS
|
||||
(NTAPI *OB_OPEN_METHOD)(
|
||||
_In_ OB_OPEN_REASON Reason,
|
||||
_In_ KPROCESSOR_MODE AccessMode,
|
||||
_In_opt_ PEPROCESS Process,
|
||||
_In_ PVOID ObjectBody,
|
||||
_In_ ACCESS_MASK GrantedAccess,
|
||||
_In_ PACCESS_MASK GrantedAccess,
|
||||
_In_ ULONG HandleCount
|
||||
);
|
||||
|
||||
@@ -234,7 +235,8 @@ typedef NTSTATUS
|
||||
_Inout_ PULONG CapturedLength,
|
||||
_Inout_ PSECURITY_DESCRIPTOR *ObjectSecurityDescriptor,
|
||||
_In_ POOL_TYPE PoolType,
|
||||
_In_ PGENERIC_MAPPING GenericMapping
|
||||
_In_ PGENERIC_MAPPING GenericMapping,
|
||||
_In_ KPROCESSOR_MODE AccessMode
|
||||
);
|
||||
|
||||
typedef NTSTATUS
|
||||
|
||||
Reference in New Issue
Block a user