- Rename ObDirectoryType to ObpDirectoryObjectType and remove it from NDK (this is not exported!)
- Rename ObSymbolicLinkType to ObpSymbolicLinkObjectType
- Remove duplicated ObpTypeObjectType from ob.h
extern KEVENT ObpDefaultObject;
extern KGUARDED_MUTEX ObpDeviceMapLock;
extern POBJECT_TYPE ObpTypeObjectType;
-extern POBJECT_TYPE ObSymbolicLinkType;
-extern POBJECT_TYPE ObpTypeObjectType;
+extern POBJECT_TYPE ObpDirectoryObjectType;
+extern POBJECT_TYPE ObpSymbolicLinkObjectType;
extern POBJECT_DIRECTORY ObpRootDirectoryObject;
extern POBJECT_DIRECTORY ObpTypeDirectoryObject;
extern PHANDLE_TABLE ObpKernelHandleTable;
Status = ObReferenceObjectByHandle(DirectoryHandle,
DIRECTORY_TRAVERSE,
- ObDirectoryType,
+ ObpDirectoryObjectType,
KeGetPreviousMode(),
(PVOID*)&DirectoryObject,
NULL);
#include <debug.h>
BOOLEAN ObpLUIDDeviceMapsEnabled;
-POBJECT_TYPE ObDirectoryType = NULL;
+POBJECT_TYPE ObpDirectoryObjectType = NULL;
/* PRIVATE FUNCTIONS ******************************************************/
/* Open the directory object */
Status = ObOpenObjectByName(ObjectAttributes,
- ObDirectoryType,
+ ObpDirectoryObjectType,
PreviousMode,
NULL,
DesiredAccess,
/* Get a reference to directory */
Status = ObReferenceObjectByHandle(DirectoryHandle,
DIRECTORY_QUERY,
- ObDirectoryType,
+ ObpDirectoryObjectType,
PreviousMode,
(PVOID*)&Directory,
NULL);
/* Create the object */
Status = ObCreateObject(PreviousMode,
- ObDirectoryType,
+ ObpDirectoryObjectType,
ObjectAttributes,
PreviousMode,
NULL,
{
/* Check if this was a symbolic link */
if (OBJECT_TO_OBJECT_HEADER(InsertObject)->Type ==
- ObSymbolicLinkType)
+ ObpSymbolicLinkObjectType)
{
/* Dereference it */
ObDereferenceObject(InsertObject);
else
{
/* Check if this is a symbolic link */
- if (ObjectType == ObSymbolicLinkType)
+ if (ObjectType == ObpSymbolicLinkObjectType)
{
/* Create the internal name */
ObpCreateSymbolicLinkName(Object);
ObjectTypeInitializer.GenericMapping = ObpDirectoryMapping;
ObjectTypeInitializer.DeleteProcedure = NULL;
ObjectTypeInitializer.DefaultNonPagedPoolCharge = sizeof(OBJECT_DIRECTORY);
- ObCreateObjectType(&Name, &ObjectTypeInitializer, NULL, &ObDirectoryType);
- ObDirectoryType->TypeInfo.ValidAccessMask &= ~SYNCHRONIZE;
+ ObCreateObjectType(&Name, &ObjectTypeInitializer, NULL, &ObpDirectoryObjectType);
+ ObpDirectoryObjectType->TypeInfo.ValidAccessMask &= ~SYNCHRONIZE;
/* Create 'symbolic link' object type */
RtlInitUnicodeString(&Name, L"SymbolicLink");
ObjectTypeInitializer.ValidAccessMask = SYMBOLIC_LINK_ALL_ACCESS;
ObjectTypeInitializer.ParseProcedure = ObpParseSymbolicLink;
ObjectTypeInitializer.DeleteProcedure = ObpDeleteSymbolicLink;
- ObCreateObjectType(&Name, &ObjectTypeInitializer, NULL, &ObSymbolicLinkType);
- ObSymbolicLinkType->TypeInfo.ValidAccessMask &= ~SYNCHRONIZE;
+ ObCreateObjectType(&Name, &ObjectTypeInitializer, NULL, &ObpSymbolicLinkObjectType);
+ ObpSymbolicLinkObjectType->TypeInfo.ValidAccessMask &= ~SYNCHRONIZE;
/* Phase 0 initialization complete */
ObpInitializationPhase++;
/* Get a handle to it */
Status = ObReferenceObjectByHandle(Handle,
0,
- ObDirectoryType,
+ ObpDirectoryObjectType,
KernelMode,
(PVOID*)&ObpRootDirectoryObject,
NULL);
/* Get a handle to it */
Status = ObReferenceObjectByHandle(Handle,
0,
- ObDirectoryType,
+ ObpDirectoryObjectType,
KernelMode,
(PVOID*)&ObpTypeDirectoryObject,
NULL);
BasicInfo->SecurityDescriptorSize = 0; /* FIXME*/
/* Check if this is a symlink */
- if (ObjectHeader->Type == ObSymbolicLinkType)
+ if (ObjectHeader->Type == ObpSymbolicLinkObjectType)
{
/* Return the creation time */
BasicInfo->CreationTime.QuadPart =
/* Get the object directory */
Status = ObReferenceObjectByHandle(ObjectHandle,
0,
- ObDirectoryType,
+ ObpDirectoryObjectType,
PreviousMode,
(PVOID*)&Directory,
NULL);
/* GLOBALS ******************************************************************/
-POBJECT_TYPE ObSymbolicLinkType = NULL;
+POBJECT_TYPE ObpSymbolicLinkObjectType = NULL;
/* PRIVATE FUNCTIONS *********************************************************/
if (! *Object)
break;
- if (OBJECT_TO_OBJECT_HEADER(*Object)->Type == ObDirectoryType)
+ if (OBJECT_TO_OBJECT_HEADER(*Object)->Type == ObpDirectoryObjectType)
{
/* Make this current directory, and continue search */
*Directory = (POBJECT_DIRECTORY)*Object;
}
- else if (OBJECT_TO_OBJECT_HEADER(*Object)->Type == ObSymbolicLinkType &&
+ else if (OBJECT_TO_OBJECT_HEADER(*Object)->Type == ObpSymbolicLinkObjectType &&
(((POBJECT_SYMBOLIC_LINK)*Object)->DosDeviceDriveIndex == 0))
{
/* Symlink points to another initialized symlink, ask caller to reparse */
/* Create the object */
Status = ObCreateObject(PreviousMode,
- ObSymbolicLinkType,
+ ObpSymbolicLinkObjectType,
ObjectAttributes,
PreviousMode,
NULL,
/* Open the object */
Status = ObOpenObjectByName(ObjectAttributes,
- ObSymbolicLinkType,
+ ObpSymbolicLinkObjectType,
PreviousMode,
NULL,
DesiredAccess,
/* Reference the object */
Status = ObReferenceObjectByHandle(LinkHandle,
SYMBOLIC_LINK_QUERY,
- ObSymbolicLinkType,
+ ObpSymbolicLinkObjectType,
PreviousMode,
(PVOID *)&SymlinkObject,
NULL);
ObpDeleteEntryDirectory(&Context);
/* Check if this is a symbolic link */
- if (ObjectType == ObSymbolicLinkType)
+ if (ObjectType == ObpSymbolicLinkObjectType)
{
/* Remove internal name */
ObpDeleteSymbolicLinkName(Object);
}
/* Don't parse a Directory */
- if (ObjectHeader->Type != ObDirectoryType)
+ if (ObjectHeader->Type != ObpDirectoryObjectType)
{
/* Make sure the Object Type has a parse routine */
ParseRoutine = ObjectHeader->Type->TypeInfo.ParseProcedure;
/* Check create access for the object */
if (!ObCheckCreateObjectAccess(Directory,
- ObjectType == ObDirectoryType ?
+ ObjectType == ObpDirectoryObjectType ?
DIRECTORY_CREATE_SUBDIRECTORY :
DIRECTORY_CREATE_OBJECT,
AccessState,
else
{
/* We still have a name; check if this is a directory object */
- if (ObjectHeader->Type == ObDirectoryType)
+ if (ObjectHeader->Type == ObpDirectoryObjectType)
{
/* Check if we have a referenced parent directory */
if (ReferencedParentDirectory)
* NOTE: Unless it's a symbolic link (Caz Yokoyama [MSFT])
*/
if ((Header->Type != ObjectType) && ((AccessMode != KernelMode) ||
- (ObjectType == ObSymbolicLinkType)))
+ (ObjectType == ObpSymbolicLinkObjectType)))
{
/* Invalid type */
return STATUS_OBJECT_TYPE_MISMATCH;
Status = SeAssignSecurity(SecurityDescriptor,
AccessState->SecurityDescriptor,
&NewDescriptor,
- (Type == ObDirectoryType),
+ (Type == ObpDirectoryObjectType),
&AccessState->SubjectSecurityContext,
&Type->TypeInfo.GenericMapping,
PagedPool);
//
// Kernel Exports
//
-extern POBJECT_TYPE NTSYSAPI ObDirectoryType;
extern PDEVICE_MAP NTSYSAPI ObSystemDeviceMap;
#endif // !NTOS_MODE_USER