31 TRACE(
"IOCTL_MOUNTDEV_QUERY_STABLE_GUID\n");
44 TRACE(
"IOCTL_DISK_IS_WRITABLE\n");
97 le2 =
Vcb->devices.Flink;
122 ERR(
"IOCTL_MOUNTDEV_QUERY_DEVICE_NAME returned %08lx\n",
Status);
135 ERR(
"IOCTL_MOUNTDEV_QUERY_DEVICE_NAME returned %08lx\n",
Status);
139 itemsize +=
bfd->name_length;
143 bfd->name_length = 0;
186 ERR(
"IoGetDeviceObjectPointer returned %08lx\n",
Status);
192 ERR(
"get_device_pnp_name returned %08lx\n",
Status);
200 WARN(
"IOCTL_DISK_UPDATE_PROPERTIES returned %08lx\n",
Status);
217 ERR(
"insufficient privileges\n");
264 Irp->IoStatus.Information = 0;
ERESOURCE global_loading_lock
#define STATUS_PRIVILEGE_NOT_HELD
#define FsRtlEnterFileSystem
#define IOCTL_BTRFS_UNLOAD
#define FsRtlExitFileSystem
#define STATUS_INVALID_PARAMETER
GLsizei const GLchar ** path
#define IOCTL_BTRFS_QUERY_FILESYSTEMS
#define SE_LOAD_DRIVER_PRIVILEGE
#define IOCTL_DISK_IS_WRITABLE
_Dispatch_type_(IRP_MJ_DEVICE_CONTROL)
BOOLEAN NTAPI SeSinglePrivilegeCheck(IN LUID PrivilegeValue, IN KPROCESSOR_MODE PreviousMode)
NTSTATUS NTAPI IoGetDeviceObjectPointer(IN PUNICODE_STRING ObjectName, IN ACCESS_MASK DesiredAccess, OUT PFILE_OBJECT *FileObject, OUT PDEVICE_OBJECT *DeviceObject)
bool is_top_level(_In_ PIRP Irp)
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
struct _MOUNTDEV_STABLE_GUID MOUNTDEV_STABLE_GUID
#define IOCTL_MOUNTDEV_QUERY_DEVICE_NAME
_In_ PDEVICE_OBJECT DeviceObject
return STATUS_NOT_IMPLEMENTED
void disk_arrival(PDRIVER_OBJECT DriverObject, PUNICODE_STRING devpath)
GLenum GLuint GLenum GLsizei length
#define offsetof(TYPE, MEMBER)
#define IoCompleteRequest
#define STATUS_MEDIA_WRITE_PROTECTED
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
#define IOCTL_MOUNTDEV_QUERY_STABLE_GUID
#define IOCTL_DISK_UPDATE_PROPERTIES
struct _LIST_ENTRY * Flink
NTSTATUS get_device_pnp_name(_In_ PDEVICE_OBJECT DeviceObject, _Out_ PUNICODE_STRING pnp_name, _Out_ const GUID **guid)
static NTSTATUS control_ioctl(PIRP Irp)
#define NT_SUCCESS(StatCode)
NTSTATUS dev_ioctl(_In_ PDEVICE_OBJECT DeviceObject, _In_ ULONG ControlCode, _In_reads_bytes_opt_(InputBufferSize) PVOID InputBuffer, _In_ ULONG InputBufferSize, _Out_writes_bytes_opt_(OutputBufferSize) PVOID OutputBuffer, _In_ ULONG OutputBufferSize, _In_ bool Override, _Out_opt_ IO_STATUS_BLOCK *iosb)
static __inline void * map_user_buffer(PIRP Irp, ULONG priority)
#define ObDereferenceObject
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
void volume_arrival(PDRIVER_OBJECT DriverObject, PUNICODE_STRING devpath)
#define FILE_READ_ATTRIBUTES
#define IOCTL_BTRFS_PROBE_VOLUME
VOID NTAPI IoSetTopLevelIrp(IN PIRP Irp)
DRIVER_DISPATCH(nfs41_FsdDispatch)
_Function_class_(IRP_MJ_DEVICE_CONTROL)
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
#define SE_MANAGE_VOLUME_PRIVILEGE
NTSTATUS vol_device_control(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define STATUS_BUFFER_OVERFLOW
_In_ PIO_STACK_LOCATION IrpSp
NTSTATUS NTAPI IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IoSkipCurrentIrpStackLocation(Irp)
BOOLEAN NTAPI ExAcquireResourceSharedLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
static NTSTATUS is_writable(device_extension *Vcb)
static NTSTATUS ioctl_unload(PIRP Irp)
#define RtlZeroMemory(Destination, Length)
#define RtlCopyMemory(Destination, Source, Length)
static NTSTATUS query_filesystems(void *data, ULONG length)
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
void do_shutdown(PIRP Irp)
btrfs_filesystem_device device
static NTSTATUS probe_volume(void *data, ULONG length, KPROCESSOR_MODE processor_mode)
#define RtlCompareMemory(s1, s2, l)
#define IRP_MJ_DEVICE_CONTROL
void volume_removal(PDRIVER_OBJECT DriverObject, PUNICODE_STRING devpath)
static NTSTATUS mountdev_query_stable_guid(device_extension *Vcb, PIRP Irp)