54 DPRINT(
"ShowAutomountState()\n");
98 DPRINT(
"SetAutomountState()\n");
147 DPRINT(
"ScrubAutomount()\n");
186 ULONG DosDeviceNameLength, DeviceNameLength;
206 DPRINT1(
"InputBuffer allocation failed!\n");
212 InputBuffer->SymbolicLinkNameLength = DosDeviceNameLength;
217 DosDeviceNameLength);
226 DPRINT1(
"OpenMountManager() failed (Status 0x%08lx)\n",
Status);
244 DPRINT1(
"NtDeviceIoControlFile() failed (Status 0x%08lx)\n",
Status);
281 DPRINT1(
"InputBuffer allocation failed!\n");
295 DPRINT1(
"OpenMountManager() failed (Status 0x%08lx)\n",
Status);
313 DPRINT1(
"NtDeviceIoControlFile() failed (Status 0x%08lx)\n",
Status);
350 DPRINT1(
"DeleteDriveLetter(%c)\n", DriveLetter);
361 DPRINT1(
"InputBuffer allocation failed!\n");
368 InputBuffer->SymbolicLinkNameLength = DosDeviceNameLength;
375 DPRINT1(
"OutputBuffer allocation failed!\n");
384 DPRINT1(
"OpenMountManager() failed (Status 0x%08lx)\n",
Status);
402 DPRINT1(
"NtDeviceIoControlFile() failed (Status 0x%08lx)\n",
Status);
void ConPuts(FILE *fp, LPCWSTR psz)
void ConResPuts(FILE *fp, UINT nID)
BOOL GetAutomountState(_Out_ PBOOL State)
static NTSTATUS OpenMountManager(_Out_ PHANDLE MountMgrHandle, _In_ ACCESS_MASK Access)
BOOL ScrubAutomount(VOID)
BOOL DeleteDriveLetter(_In_ WCHAR DriveLetter)
BOOL SetAutomountState(_In_ BOOL bEnable)
BOOL AssignNextDriveLetter(_In_ PWSTR DeviceName, _Out_ PWCHAR DriveLetter)
BOOL AssignDriveLetter(_In_ PWSTR DeviceName, _In_ WCHAR DriveLetter)
#define IDS_AUTOMOUNT_DISABLED
#define IDS_AUTOMOUNT_ENABLED
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define NT_SUCCESS(StatCode)
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
#define FILE_SYNCHRONOUS_IO_NONALERT
static char DosDeviceName[DEVICE_SIZE]
#define IOCTL_MOUNTMGR_DELETE_POINTS
struct _MOUNTMGR_CREATE_POINT_INPUT MOUNTMGR_CREATE_POINT_INPUT
#define MOUNTMGR_DEVICE_NAME
struct _MOUNTMGR_MOUNT_POINT MOUNTMGR_MOUNT_POINT
#define IOCTL_MOUNTMGR_CREATE_POINT
#define InitializeObjectAttributes(p, n, a, r, s)
#define IOCTL_MOUNTMGR_SCRUB_REGISTRY
#define IOCTL_MOUNTMGR_QUERY_AUTO_MOUNT
#define IOCTL_MOUNTMGR_SET_AUTO_MOUNT
NTSYSAPI NTSTATUS NTAPI NtOpenFile(OUT PHANDLE phFile, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK pIoStatusBlock, IN ULONG ShareMode, IN ULONG OpenMode)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSYSAPI NTSTATUS NTAPI NtDeviceIoControlFile(IN HANDLE hFile, IN HANDLE hEvent OPTIONAL, IN PIO_APC_ROUTINE IoApcRoutine OPTIONAL, IN PVOID IoApcContext OPTIONAL, OUT PIO_STATUS_BLOCK pIoStatusBlock, IN ULONG DeviceIoControlCode, IN PVOID InBuffer OPTIONAL, IN ULONG InBufferLength, OUT PVOID OutBuffer OPTIONAL, IN ULONG OutBufferLength)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
MOUNTMGR_AUTO_MOUNT_STATE CurrentState
MOUNTMGR_AUTO_MOUNT_STATE NewState
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer