FreeRDP
drive_main.c File Reference
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winpr/crt.h>
#include <winpr/path.h>
#include <winpr/file.h>
#include <winpr/synch.h>
#include <winpr/thread.h>
#include <winpr/stream.h>
#include <winpr/environment.h>
#include <winpr/interlocked.h>
#include <winpr/collections.h>
#include <winpr/shell.h>
#include <freerdp/channels/rdpdr.h>
#include "drive_file.h"

Macros

#define DeviceServiceEntry   FREERDP_API DeviceServiceEntry
 

Functions

static DWORD drive_map_windows_err (DWORD fs_errno)
 
static DRIVE_FILE * drive_get_file_by_id (DRIVE_DEVICE *drive, UINT32 id)
 
static UINT drive_process_irp_create (DRIVE_DEVICE *drive, IRP *irp)
 
static UINT drive_process_irp_close (DRIVE_DEVICE *drive, IRP *irp)
 
static UINT drive_process_irp_read (DRIVE_DEVICE *drive, IRP *irp)
 
static UINT drive_process_irp_write (DRIVE_DEVICE *drive, IRP *irp)
 
static UINT drive_process_irp_query_information (DRIVE_DEVICE *drive, IRP *irp)
 
static UINT drive_process_irp_set_information (DRIVE_DEVICE *drive, IRP *irp)
 
static UINT drive_process_irp_query_volume_information (DRIVE_DEVICE *drive, IRP *irp)
 
static UINT drive_process_irp_silent_ignore (DRIVE_DEVICE *drive, IRP *irp)
 
static UINT drive_process_irp_query_directory (DRIVE_DEVICE *drive, IRP *irp)
 
static UINT drive_process_irp_directory_control (DRIVE_DEVICE *drive, IRP *irp)
 
static UINT drive_process_irp_device_control (DRIVE_DEVICE *drive, IRP *irp)
 
static UINT drive_process_irp (DRIVE_DEVICE *drive, IRP *irp)
 
static DWORD WINAPI drive_thread_func (LPVOID arg)
 
static UINT drive_irp_request (DEVICE *device, IRP *irp)
 
static UINT drive_free_int (DRIVE_DEVICE *drive)
 
static UINT drive_free (DEVICE *device)
 
static void drive_file_objfree (void *obj)
 
static UINT drive_register_drive_path (PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints, const char *name, const char *path, BOOL automount)
 
UINT DeviceServiceEntry (PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints)
 

Variables

static UINT sys_code_page = 0
 

Macro Definition Documentation

#define DeviceServiceEntry   FREERDP_API DeviceServiceEntry

Function Documentation

UINT DeviceServiceEntry ( PDEVICE_SERVICE_ENTRY_POINTS  pEntryPoints)

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

static void drive_file_objfree ( void obj)
static

Helper function used for freeing list dictionary value object

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT drive_free ( DEVICE *  device)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT drive_free_int ( DRIVE_DEVICE *  drive)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static DRIVE_FILE* drive_get_file_by_id ( DRIVE_DEVICE *  drive,
UINT32  id 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT drive_irp_request ( DEVICE *  device,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static DWORD drive_map_windows_err ( DWORD  fs_errno)
static

Here is the caller graph for this function:

static UINT drive_process_irp ( DRIVE_DEVICE *  drive,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT drive_process_irp_close ( DRIVE_DEVICE *  drive,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT drive_process_irp_create ( DRIVE_DEVICE *  drive,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT drive_process_irp_device_control ( DRIVE_DEVICE *  drive,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT drive_process_irp_directory_control ( DRIVE_DEVICE *  drive,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT drive_process_irp_query_directory ( DRIVE_DEVICE *  drive,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT drive_process_irp_query_information ( DRIVE_DEVICE *  drive,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT drive_process_irp_query_volume_information ( DRIVE_DEVICE *  drive,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT drive_process_irp_read ( DRIVE_DEVICE *  drive,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT drive_process_irp_set_information ( DRIVE_DEVICE *  drive,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT drive_process_irp_silent_ignore ( DRIVE_DEVICE *  drive,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT drive_process_irp_write ( DRIVE_DEVICE *  drive,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT drive_register_drive_path ( PDEVICE_SERVICE_ENTRY_POINTS  pEntryPoints,
const char *  name,
const char *  path,
BOOL  automount 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static DWORD WINAPI drive_thread_func ( LPVOID  arg)
static

Here is the call graph for this function:

Here is the caller graph for this function:

Variable Documentation

UINT sys_code_page = 0
static