166 |
|
|
167 |
/* RDPDR */ |
/* RDPDR */ |
168 |
typedef uint32 NTSTATUS; |
typedef uint32 NTSTATUS; |
169 |
typedef uint32 HANDLE; |
typedef uint32 NTHANDLE; |
170 |
|
|
171 |
typedef struct _DEVICE_FNS |
typedef struct _DEVICE_FNS |
172 |
{ |
{ |
173 |
NTSTATUS(*create) (uint32 device, uint32 desired_access, uint32 share_mode, |
NTSTATUS(*create) (uint32 device, uint32 desired_access, uint32 share_mode, |
174 |
uint32 create_disposition, uint32 flags_and_attributes, char *filename, |
uint32 create_disposition, uint32 flags_and_attributes, char *filename, |
175 |
HANDLE * handle); |
NTHANDLE * handle); |
176 |
NTSTATUS(*close) (HANDLE handle); |
NTSTATUS(*close) (NTHANDLE handle); |
177 |
NTSTATUS(*read) (HANDLE handle, uint8 * data, uint32 length, uint32 offset, |
NTSTATUS(*read) (NTHANDLE handle, uint8 * data, uint32 length, uint32 offset, |
178 |
uint32 * result); |
uint32 * result); |
179 |
NTSTATUS(*write) (HANDLE handle, uint8 * data, uint32 length, uint32 offset, |
NTSTATUS(*write) (NTHANDLE handle, uint8 * data, uint32 length, uint32 offset, |
180 |
uint32 * result); |
uint32 * result); |
181 |
NTSTATUS(*device_control) (HANDLE handle, uint32 request, STREAM in, STREAM out); |
NTSTATUS(*device_control) (NTHANDLE handle, uint32 request, STREAM in, STREAM out); |
182 |
} |
} |
183 |
DEVICE_FNS; |
DEVICE_FNS; |
184 |
|
|
186 |
typedef struct rdpdr_device_info |
typedef struct rdpdr_device_info |
187 |
{ |
{ |
188 |
uint32 device_type; |
uint32 device_type; |
189 |
HANDLE handle; |
NTHANDLE handle; |
190 |
char name[8]; |
char name[8]; |
191 |
char *local_path; |
char *local_path; |
192 |
void *pdevice_data; |
void *pdevice_data; |