83 HaveBackupPriv =
TRUE;
116 HaveBackupPriv =
TRUE;
147 DPRINT1(
"You are seeing this because the following ROS driver: %wZ\n" 148 " sucks. Please fix it's AddDevice Routine\n",
154 !(OpenPacket->RelatedFileObject) &&
191 (DataBuffer->SymbolicLinkReparseBuffer.PrintNameLength +
192 DataBuffer->SymbolicLinkReparseBuffer.SubstituteNameLength +
203 DataBuffer->MountPointReparseBuffer.SubstituteNameOffset);
204 Length = DataBuffer->MountPointReparseBuffer.SubstituteNameLength;
225 if (NewBuffer ==
NULL)
237 if (DataBuffer->Reserved)
241 DataBuffer->Reserved);
312 if (OpenPacket->TraversedMountPoint)
314 OpenPacket->TraversedMountPoint =
FALSE;
345 BOOLEAN DirectOpen =
FALSE, OpenCancelled, UseDummyFile;
499 OriginalDeviceObject,
501 OriginalDeviceObject->SecurityDescriptor,
581 DPRINT1(
"Traverse access failed!\n");
631 if ((OriginalDeviceObject->Vpb) && !(DirectOpen))
635 OriginalDeviceObject,
725 OriginalDeviceObject->SecurityDescriptor,
767 Irp->Tail.Overlay.AuxiliaryBuffer =
NULL;
813 Irp->AssociatedIrp.SystemBuffer = OpenPacket->
EaBuffer;
921 FileObject->FileObjectExtension = FileObjectExtension;
946 FileObject->DeviceObject = OriginalDeviceObject;
1110 if (CompleteName->MaximumLength <
FileObject->FileName.Length)
1112 PWSTR NewCompleteName;
1116 if (NewCompleteName ==
NULL)
1123 if (CompleteName->Buffer !=
NULL)
1134 CompleteName->Buffer = NewCompleteName;
1135 CompleteName->MaximumLength =
FileObject->FileName.Length;
1188 KeBugCheckEx(DRIVER_RETURNED_STATUS_REPARSE_FOR_VOLUME_OPEN,
1263 sizeof(*FileBasicInfo),
1270 sizeof(*FileBasicInfo),
1402 Irp->UserIosb = &
Irp->IoStatus;
1428 DereferenceDone =
TRUE;
1475 if (!DereferenceDone)
1542 OldSecurityDescriptor =
DeviceObject->SecurityDescriptor;
1543 if (OldSecurityDescriptor !=
NULL)
1552 NewSecurityDescriptor = OldSecurityDescriptor;
1559 if (OldSecurityDescriptor !=
NULL)
1569 &CachedSecurityDescriptor, 1);
1580 if (
DeviceObject->SecurityDescriptor == OldSecurityDescriptor)
1583 DeviceObject->SecurityDescriptor = CachedSecurityDescriptor;
1630 if (CurrentDO == UpperDeviceObject)
1636 NextDevice = CurrentDO->AttachedDevice;
1644 CurrentDO = NextDevice;
1646 while (CurrentDO !=
NULL);
1704 if (OperationCode == QuerySecurityDescriptor)
1711 else if (OperationCode == DeleteSecurityDescriptor)
1716 else if (OperationCode == AssignSecurityDescriptor)
1733 DeviceObject->SecurityDescriptor = CachedSecurityDescriptor;
1743 else if (OperationCode == SetSecurityDescriptor)
1772 else if (OperationCode == DeleteSecurityDescriptor)
1816 Irp->Overlay.AsynchronousParameters.UserApcRoutine =
NULL;
1823 if (OperationCode == QuerySecurityDescriptor)
1827 StackPtr->
Parameters.QuerySecurity.SecurityInformation =
1836 StackPtr->
Parameters.SetSecurity.SecurityInformation =
1838 StackPtr->
Parameters.SetSecurity.SecurityDescriptor =
1888 if (OperationCode == QuerySecurityDescriptor)
1901 else if (OperationCode == QuerySecurityDescriptor)
1986 if (
Length < LocalReturnLength)
2014 &LocalReturnLength);
2029 p = (
PWCHAR)(ObjectNameInfo + 1);
2034 if (QueryDosName && NoObCall)
2055 (LocalReturnLength >
Length) ?
2056 Length : LocalReturnLength);
2060 ObjectNameInfo->Name.Buffer =
p;
2066 if (LocalReturnLength >
Length)
2071 LengthMismatch =
TRUE;
2091 &LocalReturnLength);
2099 &LocalReturnLength);
2163 ObjectNameInfo->Name.MaximumLength = (
USHORT)ObjectNameInfo->Name.Length +
2194 if (HandleCount != 1)
return;
2197 if ((
FileObject->LockOperation) && (SystemHandleCount != 1))
2231 Irp->UserIosb = &
Irp->IoStatus;
2236 Irp->Overlay.AsynchronousParameters.UserApcRoutine =
NULL;
2267 if (SystemHandleCount != 1)
return;
2300 Irp->UserIosb = &
Irp->IoStatus;
2303 Irp->Overlay.AsynchronousParameters.UserApcRoutine =
NULL;
2414 DPRINT(
"IopQueryAttributesFile failed for '%wZ' with 0x%lx\n",
2433 FileInformationSize);
2479 *LockFailed =
FALSE;
2501 FileObjectExtension =
FileObject->FileObjectExtension;
2522 FileObjectExtension =
FileObject->FileObjectExtension;
2576 ULONG EaErrorOffset;
2600 DPRINT1(
"File Create 'FileAttributes' Parameter contains invalid flags!\n");
2606 DPRINT1(
"File Create 'ShareAccess' Parameter contains invalid flags!\n");
2612 DPRINT1(
"File Create 'Disposition' Parameter is out of range!\n");
2618 DPRINT1(
"File Create 'CreateOptions' parameter contains invalid flags!\n");
2625 DPRINT1(
"File Create 'CreateOptions' parameter FILE_SYNCHRONOUS_IO_* requested, but 'DesiredAccess' does not have SYNCHRONIZE!\n");
2631 DPRINT1(
"File Create 'CreateOptions' parameter FILE_DELETE_ON_CLOSE requested, but 'DesiredAccess' does not have DELETE!\n");
2638 DPRINT1(
"File Create 'FileAttributes' parameter both FILE_SYNCHRONOUS_IO_NONALERT and FILE_SYNCHRONOUS_IO_ALERT specified!\n");
2655 DPRINT1(
"File Create 'CreateOptions' Parameter has flags incompatible with FILE_DIRECTORY_FILE!\n");
2662 DPRINT1(
"File Create 'CreateOptions' Parameter FILE_DIRECTORY_FILE requested, but 'Disposition' is not FILE_CREATE/FILE_OPEN/FILE_OPEN_IF!\n");
2668 DPRINT1(
"File Create 'CreateOptions' Parameter both FILE_COMPLETE_IF_OPLOCKED and FILE_RESERVE_OPFILTER specified!\n");
2674 DPRINT1(
"File Create 'CreateOptions' parameter FILE_NO_INTERMEDIATE_BUFFERING requested, but 'DesiredAccess' FILE_APPEND_DATA requires it!\n");
2682 if (!ExtraCreateParameters)
2684 DPRINT1(
"Invalid parameter: ExtraCreateParameters == 0!\n");
2689 NamedPipeCreateParameters = ExtraCreateParameters;
2698 DPRINT1(
"Invalid named pipe create\n");
2705 if (!ExtraCreateParameters)
2707 DPRINT1(
"Invalid parameter: ExtraCreateParameters == 0!\n");
2718 DPRINT1(
"Invalid mailslot create\n");
2749 if (SafeAllocationSize.
QuadPart < 0)
2774 DPRINT1(
"Invalid EA buffer\n");
2822 DPRINT1(
"Failed to allocate open packet EA buffer\n");
2837 DPRINT1(
"Invalid EA buffer\n");
2849 OpenPacket->
Size =
sizeof(*OpenPacket);
3038 ExtraCreateParameters,
3088 ExtraCreateParameters,
3126 (
PVOID*)&CreatedFileObject);
3149 (
PVOID*)&CreatedFileObject,
3178 return CreatedFileObject;
3223 (
PVOID*)&CreatedFileObject);
3258 return CreatedFileObject;
3622 Irp->UserIosb = &
Irp->IoStatus;
3623 Irp->Overlay.AsynchronousParameters.UserApcRoutine =
NULL;
3680 if (LocalInfo ==
NULL)
3737 else if (!
Remote && FlagSet)
3822 Buffer.ReadTimeout = *TimeOut;
3835 Buffer.MailslotQuota = MailslotQuota;
3836 Buffer.MaximumMessageSize = MaxMessageSize;
3898 Buffer.DefaultTimeout = *DefaultTimeout;
3911 Buffer.NamedPipeType = NamedPipeType;
3912 Buffer.ReadMode = ReadMode;
3913 Buffer.CompletionMode = CompletionMode;
3914 Buffer.MaximumInstances = MaximumInstances;
3915 Buffer.InboundQuota = InboundQuota;
3916 Buffer.OutboundQuota = OutboundQuota;
4070 NextEntry = ListHead->
Flink;
4071 while (ListHead != NextEntry)
4079 OurIrpsInList =
TRUE;
4083 NextEntry = NextEntry->
Flink;
4096 while (OurIrpsInList)
4100 OurIrpsInList =
FALSE;
4106 NextEntry = ListHead->
Flink;
4107 while (NextEntry != ListHead)
4114 OurIrpsInList =
TRUE;
4119 NextEntry = NextEntry->
Flink;
NTSTATUS NTAPI ObOpenObjectByName(IN POBJECT_ATTRIBUTES ObjectAttributes, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, IN PACCESS_STATE PassedAccessState, IN ACCESS_MASK DesiredAccess, IN OUT PVOID ParseContext, OUT PHANDLE Handle)
PGENERIC_MAPPING NTAPI IoGetFileObjectGenericMapping(VOID)
#define DO_DEVICE_INITIALIZING
PDEVICE_OBJECT TopDeviceObjectHint
#define FILE_GENERIC_READ
NTSTATUS NTAPI IopGetFileInformation(IN PFILE_OBJECT FileObject, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInfoClass, OUT PVOID Buffer, OUT PULONG ReturnedLength)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
BOOLEAN NTAPI SeAccessCheck(IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext, IN BOOLEAN SubjectContextLocked, IN ACCESS_MASK DesiredAccess, IN ACCESS_MASK PreviouslyGrantedAccess, OUT PPRIVILEGE_SET *Privileges, IN PGENERIC_MAPPING GenericMapping, IN KPROCESSOR_MODE AccessMode, OUT PACCESS_MASK GrantedAccess, OUT PNTSTATUS AccessStatus)
_In_ PVOID _In_ BOOLEAN Alertable
IN CINT OUT PVOID IN ULONG OUT PULONG ReturnLength
#define FO_HANDLE_CREATED
DECLSPEC_NORETURN NTSYSAPI VOID NTAPI RtlRaiseStatus(_In_ NTSTATUS Status)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
#define FILE_NO_COMPRESSION
#define ProbeForWriteIoStatusBlock(Ptr)
#define KeRaiseIrql(irql, oldIrql)
#define FILE_SEQUENTIAL_ONLY
_Out_ PNDIS_HANDLE _Out_ PUINT FileLength
__in WDFOBJECT __in PCWDF_OBJECT_CONTEXT_TYPE_INFO TypeInfo
NTKERNELAPI NTSTATUS NTAPI SeSetSecurityDescriptorInfo(_In_opt_ PVOID Object, _In_ PSECURITY_INFORMATION SecurityInformation, _In_ PSECURITY_DESCRIPTOR SecurityDescriptor, _Inout_ PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor, _In_ POOL_TYPE PoolType, _In_ PGENERIC_MAPPING GenericMapping)
#define SL_CASE_SENSITIVE
#define STATUS_INSUFFICIENT_RESOURCES
VOID NTAPI ObDereferenceSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN ULONG Count)
#define KeLowerIrql(oldIrql)
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define IRP_MJ_CREATE_MAILSLOT
#define STATUS_INFO_LENGTH_MISMATCH
NTSTATUS NTAPI NtQueryFullAttributesFile(IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PFILE_NETWORK_OPEN_INFORMATION FileInformation)
VOID NTAPI SeUnlockSubjectContext(IN PSECURITY_SUBJECT_CONTEXT SubjectContext)
#define IO_FORCE_ACCESS_CHECK
NTSTATUS NTAPI IopCreateFile(OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER AllocationSize OPTIONAL, IN ULONG FileAttributes, IN ULONG ShareAccess, IN ULONG Disposition, IN ULONG CreateOptions, IN PVOID EaBuffer OPTIONAL, IN ULONG EaLength, IN CREATE_FILE_TYPE CreateFileType, IN PVOID ExtraCreateParameters OPTIONAL, IN ULONG Options, IN ULONG Flags, IN PDEVICE_OBJECT DeviceObject OPTIONAL)
#define IRP_CLOSE_OPERATION
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING _In_opt_ PSTRING _In_ ULONG _In_ ULONG _In_opt_ PVOID _In_opt_ PVOID FilterContext
#define IRP_MJ_QUERY_SECURITY
#define OBJ_CASE_INSENSITIVE
static __inline BOOLEAN IopValidateOpenPacket(IN POPEN_PACKET OpenPacket)
#define FILE_DEVICE_TAPE_FILE_SYSTEM
#define ACCESS_SYSTEM_SECURITY
#define PsGetCurrentThread()
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE _Out_ PUINT _In_ UINT _In_ NDIS_HANDLE _In_ NDIS_HANDLE _In_ PNDIS_STRING _In_ UINT OpenOptions
#define FILE_VALID_MAILSLOT_OPTION_FLAGS
VOID NTAPI FsRtlPTeardownPerFileObjectContexts(IN PFILE_OBJECT FileObject)
NTSTATUS NTAPI IopQueryNameInternal(IN PVOID ObjectBody, IN BOOLEAN HasName, IN BOOLEAN QueryDosName, OUT POBJECT_NAME_INFORMATION ObjectNameInfo, IN ULONG Length, OUT PULONG ReturnLength, IN KPROCESSOR_MODE PreviousMode)
NTSTATUS NTAPI NtCreateMailslotFile(OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG CreateOptions, IN ULONG MailslotQuota, IN ULONG MaxMessageSize, IN PLARGE_INTEGER TimeOut)
#define FO_DIRECT_DEVICE_OPEN
IN BOOLEAN OUT PSTR Buffer
const LUID SeBackupPrivilege
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH _In_opt_ PEPROCESS _In_opt_ PETHREAD _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor
#define FILE_DEVICE_DFS_FILE_SYSTEM
#define STATUS_INVALID_PARAMETER
#define BooleanFlagOn(F, SF)
struct _DEVICE_OBJECT * PDEVICE_OBJECT
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
#define IO_TYPE_OPEN_PACKET
#define FILE_DIRECTORY_FILE
#define FILE_ATTRIBUTE_VALID_FLAGS
NTSTATUS NTAPI IoSetFileOrigin(IN PFILE_OBJECT FileObject, IN BOOLEAN Remote)
PVOID NTAPI IoGetFileObjectFilterContext(IN PFILE_OBJECT FileObject)
PDEVICE_OBJECT NTAPI IopGetDeviceAttachmentBase(IN PDEVICE_OBJECT DeviceObject)
ACCESS_MASK DesiredAccess
#define IRP_MJ_SET_SECURITY
#define FILE_DEVICE_FILE_SYSTEM
struct _OPEN_PACKET OPEN_PACKET
#define KeGetPreviousMode()
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_opt_ PVOID EaBuffer
PVOID ExtraCreateParameters
PFILE_BASIC_INFORMATION BasicInformation
VOID NTAPI IopDereferenceDeviceObject(IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN ForceUnload)
OBJECT_HEADER ObjectHeader
LARGE_INTEGER AllocationSize
VOID NTAPI SeLockSubjectContext(IN PSECURITY_SUBJECT_CONTEXT SubjectContext)
#define IOP_USE_TOP_LEVEL_DEVICE_HINT
#define FILE_PIPE_MESSAGE_TYPE
static OUT PIO_STATUS_BLOCK OUT PVOID FileInformation
#define STATUS_INVALID_DEVICE_REQUEST
NTSTATUS NTAPI ObQueryNameString(IN PVOID Object, OUT POBJECT_NAME_INFORMATION ObjectNameInfo, IN ULONG Length, OUT PULONG ReturnLength)
PSECURITY_QUALITY_OF_SERVICE SecurityQos
#define TOKEN_HAS_TRAVERSE_PRIVILEGE
VOID NTAPI IopCheckBackupRestorePrivilege(IN PACCESS_STATE AccessState, IN OUT PULONG CreateOptions, IN KPROCESSOR_MODE PreviousMode, IN ULONG Disposition)
KPROCESSOR_MODE NTAPI ExGetPreviousMode(VOID)
struct _EXTENDED_DEVOBJ_EXTENSION * PEXTENDED_DEVOBJ_EXTENSION
#define FILE_DEVICE_VIRTUAL_DISK
NTSTATUS NTAPI IoCreateFileSpecifyDeviceObjectHint(OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER AllocationSize OPTIONAL, IN ULONG FileAttributes, IN ULONG ShareAccess, IN ULONG Disposition, IN ULONG CreateOptions, IN PVOID EaBuffer OPTIONAL, IN ULONG EaLength, IN CREATE_FILE_TYPE CreateFileType, IN PVOID ExtraCreateParameters OPTIONAL, IN ULONG Options, IN PVOID DeviceObject)
static OUT PIO_STATUS_BLOCK OUT PVOID IN ULONG IN FILE_INFORMATION_CLASS FileInformationClass
VOID NTAPI IopDoNameTransmogrify(IN PIRP Irp, IN PFILE_OBJECT FileObject, IN PREPARSE_DATA_BUFFER DataBuffer)
VOID NTAPI IoSetShareAccess(IN ACCESS_MASK DesiredAccess, IN ULONG DesiredShareAccess, IN PFILE_OBJECT FileObject, OUT PSHARE_ACCESS ShareAccess)
PDEVICE_OBJECT NTAPI IoGetRelatedDeviceObject(IN PFILE_OBJECT FileObject)
BOOLEAN NTAPI IopVerifyDeviceObjectOnStack(IN PDEVICE_OBJECT BaseDeviceObject, IN PDEVICE_OBJECT TopDeviceObjectHint)
#define STATUS_INVALID_PARAMETER_MIX
PDEVICE_OBJECT PhysicalDeviceObject
#define FO_NO_INTERMEDIATE_BUFFERING
LONG NTAPI KeSetEvent(IN PKEVENT Event, IN KPRIORITY Increment, IN BOOLEAN Wait)
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
BOOLEAN TraversedMountPoint
PFILE_OBJECT NTAPI IoCreateStreamFileObjectLite(IN PFILE_OBJECT FileObject OPTIONAL, IN PDEVICE_OBJECT DeviceObject OPTIONAL)
#define FILE_RESERVE_OPFILTER
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
_In_ PIO_STACK_LOCATION _Inout_ PFILE_OBJECT _Inout_ PVCB _Outptr_result_maybenull_ PDCB _In_ PDCB _In_ PDIRENT _In_ ULONG _In_ ULONG _In_ PUNICODE_STRING _In_ PACCESS_MASK _In_ USHORT ShareAccess
VOID NTAPI IoRemoveShareAccess(IN PFILE_OBJECT FileObject, IN PSHARE_ACCESS ShareAccess)
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Reserved_ ULONG _In_opt_ PUNICODE_STRING _In_ ULONG _Out_opt_ PULONG Disposition
NTSTATUS NTAPI IoQueryFileInformation(IN PFILE_OBJECT FileObject, IN FILE_INFORMATION_CLASS FileInformationClass, IN ULONG Length, OUT PVOID FileInformation, OUT PULONG ReturnedLength)
#define FILE_VALID_OPTION_FLAGS
#define FILE_OPEN_BY_FILE_ID
#define RtlMoveMemory(Destination, Source, Length)
NTSYSAPI VOID NTAPI RtlCopyUnicodeString(PUNICODE_STRING DestinationString, PUNICODE_STRING SourceString)
#define STATUS_BUFFER_TOO_SMALL
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_opt_ PVOID _In_ ULONG _In_ CREATE_FILE_TYPE CreateFileType
NTSTATUS NTAPI IopParseFile(IN PVOID ParseObject, IN PVOID ObjectType, IN OUT 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)
#define STATUS_ALREADY_COMMITTED
#define FO_SYNCHRONOUS_IO
NTSTATUS NTAPI IopParseDevice(IN PVOID ParseObject, IN PVOID ObjectType, IN OUT PACCESS_STATE AccessState, IN KPROCESSOR_MODE AccessMode, IN ULONG Attributes, IN OUT PUNICODE_STRING CompleteName, IN OUT PUNICODE_STRING RemainingName, IN OUT PVOID Context, IN PSECURITY_QUALITY_OF_SERVICE SecurityQos OPTIONAL, OUT PVOID *Object)
#define OBJECT_TO_OBJECT_HEADER(o)
#define FILE_DEVICE_CD_ROM
#define IO_REPARSE_TAG_MOUNT_POINT
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
#define NT_WARNING(Status)
NTSTATUS NTAPI IoCheckQuotaBufferValidity(IN PFILE_QUOTA_INFORMATION QuotaBuffer, IN ULONG QuotaLength, OUT PULONG ErrorOffset)
NTSTATUS NTAPI IoVolumeDeviceToDosName(IN PVOID VolumeDeviceObject, OUT PUNICODE_STRING DosName)
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
static __inline NTSTATUS IopLockFileObject(_In_ PFILE_OBJECT FileObject, _In_ KPROCESSOR_MODE WaitMode)
VOID NTAPI IopDeleteFile(IN PVOID ObjectBody)
#define STATUS_MOUNT_POINT_NOT_RESOLVED
_In_ PDEVICE_OBJECT DeviceObject
return STATUS_NOT_IMPLEMENTED
#define FILE_NO_INTERMEDIATE_BUFFERING
#define FILE_SYNCHRONOUS_IO_ALERT
NTSTATUS NTAPI ObReferenceObjectByHandle(IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
PFILE_OBJECT RelatedFileObject
#define STATUS_SHARING_VIOLATION
PFILE_OBJECT NTAPI IoCreateStreamFileObjectEx(IN PFILE_OBJECT FileObject OPTIONAL, IN PDEVICE_OBJECT DeviceObject OPTIONAL, OUT PHANDLE FileObjectHandle OPTIONAL)
BOOLEAN NTAPI IoIsFileOriginRemote(IN PFILE_OBJECT FileObject)
NTSTATUS NTAPI IoChangeFileObjectFilterContext(IN PFILE_OBJECT FileObject, IN PVOID FilterContext, IN BOOLEAN Define)
CREATE_FILE_TYPE CreateFileType
struct _FILE_NAME_INFORMATION * PFILE_NAME_INFORMATION
#define IO_NO_PARAMETER_CHECKING
#define PRIVILEGE_SET_ALL_NECESSARY
#define OBJ_NAME_PATH_SEPARATOR
#define REPARSE_DATA_BUFFER_HEADER_SIZE
_In_opt_ PDEVICE_OBJECT _Out_opt_ PHANDLE FileObjectHandle
_In_ PEPROCESS _In_ KPROCESSOR_MODE AccessMode
#define InterlockedCompareExchangePointer
NTSTATUS NTAPI KeDelayExecutionThread(IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Interval OPTIONAL)
_In_ PVOID _In_ ULONG Event
#define PsGetCurrentProcess
#define EXCEPTION_EXECUTE_HANDLER
NTSTATUS NTAPI SeAppendPrivileges(IN OUT PACCESS_STATE AccessState, IN PPRIVILEGE_SET Privileges)
#define FILE_WRITE_THROUGH
#define STATUS_IO_REPARSE_DATA_INVALID
struct _OBJECT_NAME_INFORMATION OBJECT_NAME_INFORMATION
NTSTATUS NTAPI IopSetDeviceSecurityDescriptors(IN PDEVICE_OBJECT UpperDeviceObject, IN PDEVICE_OBJECT PhysicalDeviceObject, IN PSECURITY_INFORMATION SecurityInformation, IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN POOL_TYPE PoolType, IN PGENERIC_MAPPING GenericMapping)
#define DO_BUS_ENUMERATED_DEVICE
#define IOP_MAX_REPARSE_TRAVERSAL
NTSTATUS NTAPI IoCheckEaBufferValidity(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
struct _OPEN_PACKET * POPEN_PACKET
VOID NTAPI IoCancelFileOpen(IN PDEVICE_OBJECT DeviceObject, IN PFILE_OBJECT FileObject)
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION SecurityInformation
FORCEINLINE VOID IopQueueIrpToThread(IN PIRP Irp)
NTSTATUS NTAPI IopSetDeviceSecurityDescriptor(IN PDEVICE_OBJECT DeviceObject, IN PSECURITY_INFORMATION SecurityInformation, IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN POOL_TYPE PoolType, IN PGENERIC_MAPPING GenericMapping)
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG FileAttributes
NTSTATUS NTAPI IoCheckQuerySetFileInformation(IN FILE_INFORMATION_CLASS FileInformationClass, IN ULONG Length, IN BOOLEAN SetOperation)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
PFILE_OBJECT NTAPI IoCreateStreamFileObject(IN PFILE_OBJECT FileObject, IN PDEVICE_OBJECT DeviceObject)
NTSTATUS NTAPI ObCreateObject(IN KPROCESSOR_MODE ProbeMode OPTIONAL, IN POBJECT_TYPE Type, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, IN ULONG ObjectSize, IN ULONG PagedPoolCharge OPTIONAL, IN ULONG NonPagedPoolCharge OPTIONAL, OUT PVOID *Object)
#define FO_SEQUENTIAL_ONLY
#define FILE_DEVICE_DISK_FILE_SYSTEM
#define FILE_DELETE_ON_CLOSE
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
struct _LIST_ENTRY * Flink
NTSTATUS NTAPI IopCleanupFailedIrp(IN PFILE_OBJECT FileObject, IN PKEVENT EventObject, IN PVOID Buffer OPTIONAL)
NTSTATUS NTAPI NtDeleteFile(IN POBJECT_ATTRIBUTES ObjectAttributes)
_In_ KPROCESSOR_MODE PreviousMode
#define TOKEN_HAS_RESTORE_PRIVILEGE
#define STATUS_OBJECT_TYPE_MISMATCH
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG _Out_opt_ PULONG CreateDisposition
_Must_inspect_result_ _In_ ULONG Flags
PIRP NTAPI IopAllocateIrpMustSucceed(IN CCHAR StackSize)
#define _SEH2_YIELD(STMT_)
#define DOE_UNLOAD_PENDING
IN PVCB IN PDIRENT OUT PULONG EaLength
VOID NTAPI ObFreeObjectCreateInfoBuffer(IN POBJECT_CREATE_INFORMATION ObjectCreateInfo)
const LUID SeRestorePrivilege
#define NT_SUCCESS(StatCode)
DWORD * PSECURITY_INFORMATION
#define STATUS_NO_SUCH_DEVICE
#define FO_FILE_OPEN_CANCELLED
VOID NTAPI IopCloseFile(IN PEPROCESS Process OPTIONAL, IN PVOID ObjectBody, IN ACCESS_MASK GrantedAccess, IN ULONG HandleCount, IN ULONG SystemHandleCount)
#define ObDereferenceObject
NTSTATUS NTAPI IopCheckDeviceAndDriver(IN POPEN_PACKET OpenPacket, IN PDEVICE_OBJECT DeviceObject)
#define DO_NEVER_LAST_DEVICE