42 KeyName.Buffer =
L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\Mup";
43 KeyName.Length =
sizeof(
L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\Mup") -
sizeof(
UNICODE_NULL);
44 KeyName.MaximumLength =
sizeof(
L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\Mup");
65 KeyName.MaximumLength =
sizeof(
L"DisableDfs");
74 return ((*(
PULONG)KeyQueryOutput.KeyInfo.Data) != 1);
151 if (RegistrationInfo ==
NULL)
301 DPRINT1(
"DFS is not disabled. Going through MUP\n");
353 ZwLoadDriver(&MupString);
NTSTATUS FsRtlpRegisterProviderWithMUP(IN HANDLE MupHandle, IN PCUNICODE_STRING RedirectorDeviceName, IN BOOLEAN MailslotsSupported)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING KeyName
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
#define STATUS_INSUFFICIENT_RESOURCES
_Inout_ PUSB_DEVICE_HANDLE DeviceHandle
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG Key
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
BOOLEAN MailslotsSupported
NTSTATUS NTAPI IoDeleteSymbolicLink(IN PUNICODE_STRING SymbolicLinkName)
#define INVALID_HANDLE_VALUE
NTSYSCALLAPI NTSTATUS NTAPI NtFsControlFile(HANDLE FileHandle, HANDLE Event, PIO_APC_ROUTINE ApcRoutine, PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, ULONG FsControlCode, PVOID InputBuffer, ULONG InputBufferLength, PVOID OutputBuffer, ULONG OutputBufferLength)
struct _MUP_PROVIDER_REGISTRATION_INFO MUP_PROVIDER_REGISTRATION_INFO
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
KSEMAPHORE FsRtlpUncSemaphore
BOOLEAN MailslotsSupported
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
NTSTATUS FsRtlpOpenDev(OUT PHANDLE DeviceHandle, IN PCWSTR DeviceName)
NTSTATUS NTAPI IoCreateSymbolicLink(IN PUNICODE_STRING SymbolicLinkName, IN PUNICODE_STRING DeviceName)
#define NT_SUCCESS(StatCode)
#define FSCTL_MUP_REGISTER_PROVIDER
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define OBJ_CASE_INSENSITIVE
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define ExAllocatePoolWithTag(hernya, size, tag)
BOOLEAN FsRtlpIsDfsEnabled(VOID)
#define FILE_ATTRIBUTE_NORMAL
ULONG RedirectorDeviceNameOffset
static const WCHAR Cleanup[]
ULONG RedirectorDeviceNameLength
LONG NTAPI KeReleaseSemaphore(IN PKSEMAPHORE Semaphore, IN KPRIORITY Increment, IN LONG Adjustment, IN BOOLEAN Wait)
static OUT PIO_STATUS_BLOCK IoStatusBlock
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
#define InitializeObjectAttributes(p, n, a, r, s)
#define ExFreePoolWithTag(_P, _T)
VOID FsRtlpSetSymbolicLink(IN PCUNICODE_STRING DeviceName)
NTSTATUS NTAPI FsRtlRegisterUncProvider(OUT PHANDLE Handle, IN PCUNICODE_STRING RedirectorDeviceName, IN BOOLEAN MailslotsSupported)
UNICODE_STRING RedirectorDeviceName
VOID NTAPI FsRtlDeregisterUncProvider(IN HANDLE Handle)
NTSYSAPI NTSTATUS NTAPI NtWaitForSingleObject(IN HANDLE hObject, IN BOOLEAN bAlertable, IN PLARGE_INTEGER Timeout)