librpc: Shorten dcerpc_binding_handle_call a bit
[Samba/vl.git] / librpc / idl / ioctl.idl
blob4672777909285cbb3d37458a3443f5ef99ff9594
1 #include "idl_types.h"
3 pointer_default(unique)
5 interface copychunk
7 typedef [public] struct {
8 uint8 resume_key[24];
9 uint32 context_len;
10 /* <56> Windows sends 4 bytes of zero for the context field. */
11 uint8 context[4];
12 } req_resume_key_rsp;
14 typedef struct {
15 hyper source_off;
16 hyper target_off;
17 uint32 length;
18 uint32 reserved;
19 } srv_copychunk;
21 typedef [public] struct {
22 uint8 source_key[24];
23 uint32 chunk_count;
24 uint32 reserved;
25 srv_copychunk chunks[chunk_count];
26 } srv_copychunk_copy;
28 typedef [public] struct {
29 uint32 chunks_written;
30 uint32 chunk_bytes_written;
31 uint32 total_bytes_written;
32 } srv_copychunk_rsp;
34 typedef [public] struct {
35 uint32 version;
36 uint32 size;
37 uint32 maximum_token_lifetime;
38 uint32 default_token_lifetime;
39 hyper maximum_xfer_size;
40 hyper optimal_xfer_count;
41 uint32 maximum_data_descriptors;
42 uint32 maximum_xfer_length_per_descriptor;
43 uint32 optimal_xfer_length_per_descriptor;
44 uint16 optimal_xfer_length_granularity;
45 uint8 reserved[2];
46 } device_copy_offload_descriptor;
48 /* XXX: 0x00000001 is unconfirmed */
49 const uint32 STORAGE_OFFLOAD_TOKEN_TYPE_ZERO_DATA = 0x00000001;
50 typedef [public] struct {
51 uint32 token_type;
52 uint8 reserved[2];
53 uint16 token_id_len;
54 [size_is(token_id_len)] uint8 token[];
55 } storage_offload_token;
57 typedef [public] struct {
58 uint32 size;
59 uint32 flags;
60 uint32 token_time_to_live;
61 uint32 reserved;
62 hyper file_offset;
63 hyper length;
64 } fsctl_offload_read_input;
66 const uint32 OFFLOAD_READ_FLAG_FILE_TOO_SMALL = 0x00000001;
67 const uint32 OFFLOAD_READ_FLAG_ALL_ZERO_BEYOND_RANGE = 0x00000002;
68 const uint32 OFFLOAD_READ_FLAG_CANNOT_OFFLOAD_BEYOND_RANGE = 0x00000004;
69 typedef [public] struct {
70 uint32 size;
71 uint32 flags;
72 hyper xfer_length;
73 uint8 token[512];
74 } fsctl_offload_read_output;
76 typedef [public] struct {
77 uint32 size;
78 uint32 flags;
79 hyper file_offset;
80 hyper copy_length;
81 hyper xfer_offset;
82 uint8 token[512];
83 } fsctl_offload_write_input;
85 typedef [public] struct {
86 uint32 size;
87 uint32 flags;
88 hyper length_written;
89 } fsctl_offload_write_output;