Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IRP_MJ_QUERY_INFORMATION #12717

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
24c1a90
Creates a general vchan Client that can read chunked messages. rdpdr …
Mar 31, 2022
41ac367
Tidying up
Mar 31, 2022
58cac52
Merge branch 'master' into isaiah/reuse-vchan-read
Mar 31, 2022
fa3531f
small fixes
Mar 31, 2022
ab4d66d
Merge branch 'master' into isaiah/reuse-vchan-read
Mar 31, 2022
aaa8369
fixes linting errors
Apr 1, 2022
54b7e3d
Merge branch 'master' into isaiah/reuse-vchan-read
Apr 1, 2022
071620b
Merge branch 'master' into isaiah/reuse-vchan-read
Apr 1, 2022
52a3d5d
Merge branch 'master' into isaiah/reuse-vchan-read
Apr 1, 2022
ceddf84
Adds drive redirection capability set to the Client Core Capability R…
Apr 1, 2022
6baccf6
Adds the ClientDeviceListAnnounce message, plus some prototype code t…
Apr 4, 2022
9036618
Adds to_unicode util
Apr 4, 2022
770f6e7
refactor of vchan and rdpdr to use it
Apr 4, 2022
17a35e8
refactors cliprdr to use generalized vchan header and chunking
Apr 4, 2022
c946b52
nits
Apr 4, 2022
787b67e
Merge branch 'master' into isaiah/reuse-vchan-write
Apr 4, 2022
6cd9ac2
small fixes from CR
Apr 4, 2022
997b7d6
Merge branch 'master' into isaiah/reuse-vchan-write
Apr 4, 2022
eb8ed1a
Merge branch 'isaiah/reuse-vchan-write' into isaiah/mock-drive-redire…
Apr 4, 2022
54b53d0
A right click sends an ClientDeviceListAnnounce message and the rdp c…
Apr 6, 2022
8f1ead3
adds prototype logic for handling IRP_MJ_QUERY_INFORMATION and IRP_MJ…
Apr 8, 2022
9a88738
removes some un needed comments. the link to the documentation is eno…
Apr 11, 2022
fb60ebb
Successfully mocks a drive for redirection
Apr 15, 2022
51f83e5
adding important todo
Apr 19, 2022
b4192a6
removes unneeded pub decl
Apr 25, 2022
6cf694a
refactors rdpdr into its own self-contained folder module
Apr 25, 2022
fa0d555
moving scard into rdpdr
Apr 26, 2022
4b9c330
allowing dead code
Apr 26, 2022
66eb895
stubs out request_file_info
Apr 26, 2022
687b84c
fixes mismatched declaration
Apr 27, 2022
058530b
completes IRP_MJ_DEVICE_CONTROL
Apr 27, 2022
1543585
adds a check for allow_directory_sharing so that we guarantee its fun…
Apr 27, 2022
549eb02
adds SharedDirectoryAnnounce and removes the right click hack from cl…
Apr 27, 2022
8c5e2b1
Adds SharedDirectoryAcknowledge tdp message, refactors rust-go interf…
Apr 28, 2022
de13b64
updates naming convention
Apr 28, 2022
8017ef2
Making sense of handle_client_id_confirm
Apr 28, 2022
1ce587f
finishes out shared directory ack
Apr 28, 2022
66b5b00
updates to new sd_acknowledge
Apr 29, 2022
de8e052
uses a struct for ack
Apr 30, 2022
0feae71
roadblock at 'static lifetime error
May 2, 2022
20d9aeb
refactors codebase to only contain shared directory announce and shar…
May 3, 2022
ec900b8
Merge branch 'master' into isaiah/tdp-sd-announce-ack
May 3, 2022
e43694b
Merge branch 'master' into isaiah/tdp-sd-announce-ack
May 3, 2022
95af26b
fixes function name typo
May 4, 2022
2adf291
checking in to go work on other stuff
May 6, 2022
eec39f5
rather than passing errors via C-strings, we pass them as integers wh…
May 6, 2022
c43d688
Merge branch 'master' into isaiah/cgo-err-code
May 6, 2022
a56236f
giving CGOErrCode explicit values
May 7, 2022
20efe3e
removing useless format
May 7, 2022
dac6c41
adding feature flag
May 9, 2022
6251502
adding #[allow(dead_code)]
May 9, 2022
2cb663d
Merge branch 'master' into isaiah/cgo-err-code
May 9, 2022
3615580
Merge branch 'isaiah/cgo-err-code' into isaiah/tdp-sd-announce-ack
May 9, 2022
7fe5b95
Debugf
May 9, 2022
9274c31
Merge branch 'master' into isaiah/cgo-err-code
May 9, 2022
7975209
Merge branch 'isaiah/cgo-err-code' into isaiah/tdp-sd-announce-ack
May 9, 2022
b0072f9
Merge branch 'isaiah/tdp-sd-announce-ack' into isaiah/stub-irp-mj-create
May 9, 2022
ce1c6c5
removing mentions of code side
May 9, 2022
1732e90
Merge branch 'isaiah/cgo-err-code' into isaiah/tdp-sd-announce-ack
May 9, 2022
6605005
Merge branch 'isaiah/tdp-sd-announce-ack' into isaiah/stub-irp-mj-create
May 9, 2022
224db3a
removing dangling CGO_OK
May 9, 2022
9ec0cba
making a mod.rs
May 9, 2022
ee34ddd
moving scard in rdpdr
May 9, 2022
dbedfc8
moves constants into consts.rs
May 9, 2022
df26b8f
Adds go build flags for directory sharing and some basic scaffolding …
May 9, 2022
e0bbfcf
Merge branch 'isaiah/shared-directory-build-flag' into isaiah/tdp-sd-…
May 9, 2022
eccab5a
Merge branch 'master' into isaiah/tdp-sd-announce-ack
May 9, 2022
51c956c
reverting e
May 9, 2022
8d532c8
Id to ID
May 10, 2022
750fe60
typo
May 10, 2022
f4959ee
proof of concept for calling the closures from golang. Checkpoing com…
May 11, 2022
e5d849e
trims rust back to bare minimum required for poc
May 11, 2022
f146e42
adds TypeSharedDirectoryAcknowledge, TypeSharedDirectoryInfoRequest, …
May 11, 2022
53cc341
Adds sharedDirectoryInfoRequest to go client
May 12, 2022
fe4bd3e
adds SharedDirectoryInfoResponse to go client
May 12, 2022
6bfc7a3
Merge branch 'isaiah/tdp-sd-announce-ack' into isaiah/rdp-tdp-transl-…
May 12, 2022
27d7c53
CR
May 12, 2022
f00eeb6
fixes compiler errors
May 12, 2022
0227339
Adds the straightforward failure modes
May 14, 2022
cd4b5a2
adds file_cache
May 14, 2022
9ebf970
adds Shared Directory Create Request
May 14, 2022
8d97123
adds Shared Directory Delete Request
May 15, 2022
034f396
fills out the rest of IRP_MJ_CREATE
May 15, 2022
b01c4ee
adds plumbing for calling handle_tdp_sd_create_response and handle_td…
May 15, 2022
d7950f6
adds logic for calling handle_tdp_sd_create_response and handle_tdp_s…
May 15, 2022
1db2ff5
reverting mistaken Makefile change
May 15, 2022
e1ce4ce
Merge branch 'isaiah/rdp-tdp-transl-arch' into isaiah/complete-irp-mj…
May 15, 2022
664a8e4
adds missing STATUS_SUCCESS messages
May 17, 2022
6ce109a
adds logic for IRP_MJ_QUERY_INFORMATION
May 17, 2022
3dc58ad
adding dead_code tag
May 17, 2022
90350d1
reverting Makefile
May 17, 2022
c4371da
Merge branch 'master' into isaiah/tdp-sd-announce-ack
May 18, 2022
750e7ff
fixing build bug and go lint errors
May 19, 2022
5bd7968
merging branch isaiah/tdp-sd-announce-ack
May 19, 2022
15fb5c5
Merge branch 'isaiah/rdp-tdp-transl-arch' into isaiah/complete-irp-mj…
May 19, 2022
efa9ac1
reverting Makefile
May 19, 2022
23ddd4d
Merge branch 'isaiah/complete-irp-mj-create' into isaiah/irp-mj-query…
May 19, 2022
b449124
fixing rust linting problems
May 19, 2022
6b304ff
Merge branch 'isaiah/tdp-sd-announce-ack' into isaiah/rdp-tdp-transl-…
May 19, 2022
766c0ca
fixing clippy errors
May 19, 2022
93ba0bf
Merge branch 'isaiah/rdp-tdp-transl-arch' into isaiah/complete-irp-mj…
May 19, 2022
3c3db15
Fixes linting errors
May 19, 2022
570019a
Merge branch 'isaiah/complete-irp-mj-create' into isaiah/irp-mj-query…
May 19, 2022
58cf5e2
fixing lint errors and reverting Makefile
May 19, 2022
d296a51
reverting mistaken e/webassets update
May 23, 2022
75363f1
reverting mistaken Makefile change
May 23, 2022
332af85
Merge branch 'master' into isaiah/tdp-sd-announce-ack
May 25, 2022
416b8a0
Update lib/srv/desktop/rdp/rdpclient/librdprs.h
May 27, 2022
aff394c
Update lib/srv/desktop/rdp/rdpclient/src/lib.rs
May 27, 2022
d773592
Code review
May 27, 2022
ded34fc
refactoring handle_device_reply to clarify which part is for director…
May 31, 2022
7df9b4f
changing try_from to as
May 31, 2022
901aa3d
adds doc comment for new_drive
May 31, 2022
eade41e
adding doc for write_client_device_list_announce
May 31, 2022
9077167
Removes CapabilityType::CAP_DRIVE_TYPE from the capability set if dir…
May 31, 2022
88847b6
adds docstring to sharedDirectoryAcknowledge
May 31, 2022
0bb389c
Merge branch 'isaiah/tdp-sd-announce-ack' into isaiah/rdp-tdp-transl-…
May 31, 2022
c1ef663
Merge branch 'isaiah/rdp-tdp-transl-arch' into isaiah/complete-irp-mj…
Jun 13, 2022
4fbb4d7
removes an unnecessary comment and adds a necessary one
Jun 13, 2022
791c98c
Adds docstrings to TDP types
Jun 14, 2022
13f898a
Merge branch 'isaiah/complete-irp-mj-create' into isaiah/irp-mj-query…
Jun 14, 2022
698bcd0
code readability improvement
Jun 14, 2022
9451f8c
adding tests for to_windows_time
Jun 14, 2022
cc177dc
Merge branch 'master' into isaiah/rdp-tdp-transl-arch
Jun 14, 2022
09c0226
linting
Jun 15, 2022
d74e4bf
Merge branch 'master' into isaiah/rdp-tdp-transl-arch
Jun 15, 2022
070f46e
Merge branch 'master' into isaiah/rdp-tdp-transl-arch
Jun 15, 2022
c4dc2d1
Merge branch 'isaiah/rdp-tdp-transl-arch' into isaiah/complete-irp-mj…
Jun 15, 2022
bf24ec3
Merge branch 'isaiah/complete-irp-mj-create' into isaiah/irp-mj-query…
Jun 15, 2022
3239e0a
Merge branch 'windows-desktop-directory-sharing' into isaiah/irp-mj-q…
Jun 17, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 32 additions & 32 deletions lib/srv/desktop/rdp/rdpclient/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1048,6 +1048,38 @@ impl From<CGOSharedDirectoryInfoResponse> for SharedDirectoryInfoResponse {
}
}

/// FileSystemObject is a TDP structure containing the metadata
/// of a file or directory.
#[derive(Debug)]
#[allow(dead_code)]
pub struct FileSystemObject {
last_modified: u64,
size: u64,
file_type: u32, // TODO(isaiah): make an enum
path: String,
}

#[repr(C)]
pub struct CGOFileSystemObject {
pub last_modified: u64,
pub size: u64,
pub file_type: u32, // TODO(isaiah): make an enum
pub path: *const c_char,
}

impl From<CGOFileSystemObject> for FileSystemObject {
fn from(cgo_fso: CGOFileSystemObject) -> FileSystemObject {
unsafe {
FileSystemObject {
last_modified: cgo_fso.last_modified,
size: cgo_fso.size,
file_type: cgo_fso.file_type,
path: from_go_string(cgo_fso.path),
}
}
}
}

/// SharedDirectoryCreateRequest is sent by the TDP server to
/// the client to request the creation of a new file or directory.
#[derive(Debug)]
Expand Down Expand Up @@ -1093,38 +1125,6 @@ pub struct CGOSharedDirectoryDeleteRequest {
pub path: *const c_char,
}

/// FileSystemObject is a TDP structure containing the metadata
/// of a file or directory.
#[derive(Debug)]
#[allow(dead_code)]
pub struct FileSystemObject {
last_modified: u64,
size: u64,
file_type: u32, // TODO(isaiah): make an enum
path: String,
}

#[repr(C)]
pub struct CGOFileSystemObject {
pub last_modified: u64,
pub size: u64,
pub file_type: u32, // TODO(isaiah): make an enum
pub path: *const c_char,
}

impl From<CGOFileSystemObject> for FileSystemObject {
fn from(cgo_fso: CGOFileSystemObject) -> FileSystemObject {
unsafe {
FileSystemObject {
last_modified: cgo_fso.last_modified,
size: cgo_fso.size,
file_type: cgo_fso.file_type,
path: from_go_string(cgo_fso.path),
}
}
}
}

/// SharedDirectoryDeleteResponse is sent by the TDP client to the server
/// to acknowledge a SharedDirectoryDeleteRequest was received and executed.
pub type SharedDirectoryDeleteResponse = SharedDirectoryCreateResponse;
Expand Down
Loading