#include "obp.h"
Go to the source code of this file.
Defines | |
#define | CREATE_SYMBOLIC_LINK 0 |
#define | DELETE_SYMBOLIC_LINK 1 |
#define | MAX_DEPTH 16 |
Functions | |
VOID | ObpProcessDosDeviceSymbolicLink (POBJECT_SYMBOLIC_LINK SymbolicLink, ULONG Action) |
NTSTATUS | NtCreateSymbolicLinkObject (OUT PHANDLE LinkHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PUNICODE_STRING LinkTarget) |
NTSTATUS | NtOpenSymbolicLinkObject (OUT PHANDLE LinkHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes) |
NTSTATUS | NtQuerySymbolicLinkObject (IN HANDLE LinkHandle, IN OUT PUNICODE_STRING LinkTarget, OUT PULONG ReturnedLength OPTIONAL) |
NTSTATUS | ObpParseSymbolicLink (IN PVOID ParseObject, IN PVOID ObjectType, IN PACCESS_STATE AccessState, IN KPROCESSOR_MODE AccessMode, IN ULONG Attributes, IN OUT PUNICODE_STRING CompleteName, IN OUT PUNICODE_STRING RemainingName, IN OUT PVOID Context OPTIONAL, IN PSECURITY_QUALITY_OF_SERVICE SecurityQos OPTIONAL, OUT PVOID *Object) |
VOID | ObpDeleteSymbolicLink (IN PVOID Object) |
VOID | ObpDeleteSymbolicLinkName (POBJECT_SYMBOLIC_LINK SymbolicLink) |
VOID | ObpCreateSymbolicLinkName (POBJECT_SYMBOLIC_LINK SymbolicLink) |
Variables | |
POBJECT_TYPE | IoDeviceObjectType |
|
Definition at line 41 of file oblink.c. Referenced by ObpCreateSymbolicLinkName(), and ObpProcessDosDeviceSymbolicLink(). |
|
Definition at line 42 of file oblink.c. Referenced by ObpDeleteSymbolicLinkName(). |
|
Definition at line 1118 of file oblink.c. Referenced by ObpProcessDosDeviceSymbolicLink(). |
|
Definition at line 52 of file oblink.c. References ExAllocatePoolWithTag, EXCEPTION_EXECUTE_HANDLER, Handle, KeQuerySystemTime(), KernelMode, KPROCESSOR_MODE, NT_SUCCESS, NTSTATUS(), NULL, ObCreateObject(), ObDereferenceObject, ObInsertObject(), ObjectAttributes, ObpSymbolicLinkObjectType, PAGED_CODE, PagedPool, ProbeForRead, ProbeForWriteHandle, RtlInitUnicodeString(), and Status. Referenced by IopReassignSystemRoot(), ObpCreateDosDevicesDirectory(), and TestParent().
|
|
Definition at line 247 of file oblink.c. References EXCEPTION_EXECUTE_HANDLER, Handle, KernelMode, KPROCESSOR_MODE, NTSTATUS(), NULL, ObjectAttributes, ObOpenObjectByName(), ObpSymbolicLinkObjectType, PAGED_CODE, ProbeForWriteHandle, and Status. Referenced by CleanupSessionObjectDirectories(), DumpObjectDirs(), IopReassignSystemRoot(), IopStoreSystemPartitionInformation(), LdrpInitializeProcess(), and SubstituteDeviceName().
|
|
Definition at line 333 of file oblink.c. References EXCEPTION_EXECUTE_HANDLER, KernelMode, KPROCESSOR_MODE, NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObpEnterObjectTypeMutex, ObpLeaveObjectTypeMutex, ObpSymbolicLinkObjectType, ObReferenceObjectByHandle(), PAGED_CODE, ProbeForRead, ProbeForWrite(), ProbeForWriteUlong, ProbeForWriteUshort, and Status. Referenced by DumpObjectDirs(), IopReassignSystemRoot(), IopStoreSystemPartitionInformation(), LdrpInitializeProcess(), and SubstituteDeviceName().
|
|
Definition at line 1015 of file oblink.c. References CREATE_SYMBOLIC_LINK, _OBJECT_DIRECTORY::DeviceMap, _OBJECT_HEADER_NAME_INFO::Directory, _OBJECT_SYMBOLIC_LINK::DosDeviceDriveIndex, L, _OBJECT_HEADER_NAME_INFO::Name, NULL, OBJECT_HEADER_TO_NAME_INFO, OBJECT_TO_OBJECT_HEADER, ObpProcessDosDeviceSymbolicLink(), and RtlUpcaseUnicodeChar(). Referenced by ObInsertObject().
|
|
Definition at line 904 of file oblink.c. References ExFreePool(), _OBJECT_SYMBOLIC_LINK::LinkTarget, NULL, and PAGED_CODE. Referenced by ObInitSystem().
|
|
Definition at line 951 of file oblink.c. References DELETE_SYMBOLIC_LINK, _OBJECT_SYMBOLIC_LINK::LinkTargetObject, NULL, ObDereferenceObject, ObpEnterRootDirectoryMutex, ObpLeaveRootDirectoryMutex, ObpProcessDosDeviceSymbolicLink(), and ObReferenceObject. Referenced by ObpDeleteNameCheck().
|
|
Definition at line 501 of file oblink.c. References ExAllocatePoolWithTag, ExFreePool(), _OBJECT_SYMBOLIC_LINK::LinkTarget, _OBJECT_SYMBOLIC_LINK::LinkTargetObject, _OBJECT_SYMBOLIC_LINK::LinkTargetRemaining, NewName, NonPagedPool, NT_SUCCESS, NTSTATUS(), NULL, ObpEnterRootDirectoryMutex, ObpLeaveRootDirectoryMutex, ObReferenceObjectByPointer(), PAGED_CODE, Status, and USHORT. Referenced by ObInitSystem(), and ObpLookupObjectName().
|
|
Definition at line 1121 of file oblink.c. References Action, _DEVICE_OBJECT::Characteristics, CREATE_SYMBOLIC_LINK, _OBJECT_DIRECTORY::DeviceMap, _DEVICE_OBJECT::DeviceType, _OBJECT_HEADER_NAME_INFO::Directory, Directory(), _OBJECT_SYMBOLIC_LINK::DosDeviceDriveIndex, _DEVICE_MAP::DosDevicesDirectory, _DEVICE_MAP::DriveMap, _DEVICE_MAP::DriveType, ExFreePool(), FALSE, IoDeviceObjectType, IoRemoteBootClient, _OBJECT_SYMBOLIC_LINK::LinkTarget, _OBJECT_SYMBOLIC_LINK::LinkTargetObject, _OBJECT_SYMBOLIC_LINK::LinkTargetRemaining, MAX_DEPTH, NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObGetObjectSecurity(), OBJECT_HEADER_TO_NAME_INFO, OBJECT_TO_OBJECT_HEADER, ObpDirectoryObjectType, ObpDosDevicesShortName, ObpDosDevicesShortNamePrefix, ObpLookupDirectoryEntry(), ObpRootDirectoryObject, ObpSymbolicLinkObjectType, ObReferenceObject, ObReleaseObjectSecurity(), PsGetCurrentProcess, RtlInitUnicodeString(), SeFastTraverseCheck(), Status, TRUE, _OBJECT_HEADER::Type, and UserMode. Referenced by ObpCreateSymbolicLinkName(), and ObpDeleteSymbolicLinkName().
|
|
Definition at line 35 of file oblink.c. Referenced by IoCreateDevice(), IopCreateObjectTypes(), IovpReexamineAllStacks(), and ObpProcessDosDeviceSymbolicLink(). |