+ struct share_config *config;
+
+ struct server_id server_id;
+ struct loadparm_context *lp_ctx;
+ struct tevent_context *event_ctx;
+ struct messaging_context *msg_ctx;
+
+ struct {
+ void *private_data;
+ NTSTATUS (*handler)(void *private_data, struct ntvfs_handle *handle, uint8_t level);
+ } oplock;
+
+ struct {
+ void *private_data;
+ struct socket_address *(*get_my_addr)(void *private_data, TALLOC_CTX *mem_ctx);
+ struct socket_address *(*get_peer_addr)(void *private_data, TALLOC_CTX *mem_ctx);
+ } client;
+
+ struct {
+ void *private_data;
+ NTSTATUS (*create_new)(void *private_data, struct ntvfs_request *req, struct ntvfs_handle **h);
+ NTSTATUS (*make_valid)(void *private_data, struct ntvfs_handle *h);
+ void (*destroy)(void *private_data, struct ntvfs_handle *h);
+ struct ntvfs_handle *(*search_by_wire_key)(void *private_data, struct ntvfs_request *req, const DATA_BLOB *key);
+ DATA_BLOB (*get_wire_key)(void *private_data, struct ntvfs_handle *handle, TALLOC_CTX *mem_ctx);
+ } handles;
+};