mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
8fde65e199
Values taken from MS-FSCC. Signed-off-by: David Disseldorp <ddiss@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
102 lines
2.3 KiB
Plaintext
102 lines
2.3 KiB
Plaintext
#include "idl_types.h"
|
|
[
|
|
pointer_default(unique)
|
|
]
|
|
interface copychunk
|
|
{
|
|
typedef [public] struct {
|
|
uint8 resume_key[24];
|
|
uint32 context_len;
|
|
/* <56> Windows sends 4 bytes of zero for the context field. */
|
|
uint8 context[4];
|
|
} req_resume_key_rsp;
|
|
|
|
typedef struct {
|
|
hyper source_off;
|
|
hyper target_off;
|
|
uint32 length;
|
|
uint32 reserved;
|
|
} srv_copychunk;
|
|
|
|
typedef [public] struct {
|
|
uint8 source_key[24];
|
|
uint32 chunk_count;
|
|
uint32 reserved;
|
|
srv_copychunk chunks[chunk_count];
|
|
} srv_copychunk_copy;
|
|
|
|
typedef [public] struct {
|
|
uint32 chunks_written;
|
|
uint32 chunk_bytes_written;
|
|
uint32 total_bytes_written;
|
|
} srv_copychunk_rsp;
|
|
|
|
typedef [public] struct {
|
|
uint32 version;
|
|
uint32 size;
|
|
uint32 maximum_token_lifetime;
|
|
uint32 default_token_lifetime;
|
|
hyper maximum_xfer_size;
|
|
hyper optimal_xfer_count;
|
|
uint32 maximum_data_descriptors;
|
|
uint32 maximum_xfer_length_per_descriptor;
|
|
uint32 optimal_xfer_length_per_descriptor;
|
|
uint16 optimal_xfer_length_granularity;
|
|
uint8 reserved[2];
|
|
} device_copy_offload_descriptor;
|
|
|
|
/* XXX: 0x00000001 is unconfirmed */
|
|
const uint32 STORAGE_OFFLOAD_TOKEN_TYPE_ZERO_DATA = 0x00000001;
|
|
typedef [public] struct {
|
|
uint32 token_type;
|
|
uint8 reserved[2];
|
|
uint16 token_id_len;
|
|
[size_is(token_id_len)] uint8 token[];
|
|
} storage_offload_token;
|
|
|
|
typedef [public] struct {
|
|
uint32 size;
|
|
uint32 flags;
|
|
uint32 token_time_to_live;
|
|
uint32 reserved;
|
|
hyper file_offset;
|
|
hyper length;
|
|
} fsctl_offload_read_input;
|
|
|
|
const uint32 OFFLOAD_READ_FLAG_FILE_TOO_SMALL = 0x00000001;
|
|
const uint32 OFFLOAD_READ_FLAG_ALL_ZERO_BEYOND_RANGE = 0x00000002;
|
|
const uint32 OFFLOAD_READ_FLAG_CANNOT_OFFLOAD_BEYOND_RANGE = 0x00000004;
|
|
typedef [public] struct {
|
|
uint32 size;
|
|
uint32 flags;
|
|
hyper xfer_length;
|
|
uint8 token[512];
|
|
} fsctl_offload_read_output;
|
|
|
|
typedef [public] struct {
|
|
uint32 size;
|
|
uint32 flags;
|
|
hyper file_offset;
|
|
hyper copy_length;
|
|
hyper xfer_offset;
|
|
uint8 token[512];
|
|
} fsctl_offload_write_input;
|
|
|
|
typedef [public] struct {
|
|
uint32 size;
|
|
uint32 flags;
|
|
hyper length_written;
|
|
} fsctl_offload_write_output;
|
|
}
|
|
|
|
interface compression
|
|
{
|
|
const uint16 COMPRESSION_FORMAT_NONE = 0x0000;
|
|
const uint16 COMPRESSION_FORMAT_DEFAULT = 0x0001;
|
|
const uint16 COMPRESSION_FORMAT_LZNT1 = 0x0002;
|
|
|
|
typedef [public] struct {
|
|
uint16 format;
|
|
} compression_state;
|
|
}
|