crypt32: Move decoding hash messages to a helper function.
[wine] / server / handle.h
CommitLineData
43c190e7
AJ
1/*
2 * Server-side handle definitions
3 *
4 * Copyright (C) 1999 Alexandre Julliard
0799c1a7
AJ
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
360a3f91 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
43c190e7
AJ
19 */
20
21#ifndef __WINE_SERVER_HANDLE_H
22#define __WINE_SERVER_HANDLE_H
23
5bc78089 24#include <stdlib.h>
d16319ce 25#include "windef.h"
37ec9275 26#include "wine/server_protocol.h"
5bc78089 27
43c190e7
AJ
28struct process;
29struct object_ops;
526a28de 30struct namespace;
ead9b062 31struct unicode_str;
43c190e7
AJ
32
33/* handle functions */
34
35/* alloc_handle takes a void *obj for convenience, but you better make sure */
36/* that the thing pointed to starts with a struct object... */
51885749 37extern obj_handle_t alloc_handle( struct process *process, void *obj,
24560e70 38 unsigned int access, unsigned int attr );
8700c434 39extern int close_handle( struct process *process, obj_handle_t handle );
51885749 40extern struct object *get_handle_obj( struct process *process, obj_handle_t handle,
43c190e7 41 unsigned int access, const struct object_ops *ops );
f92fff66 42extern unsigned int get_handle_access( struct process *process, obj_handle_t handle );
51885749 43extern obj_handle_t duplicate_handle( struct process *src, obj_handle_t src_handle, struct process *dst,
24560e70 44 unsigned int access, unsigned int attr, unsigned int options );
ead9b062 45extern obj_handle_t open_object( const struct namespace *namespace, const struct unicode_str *name,
a996000a 46 const struct object_ops *ops, unsigned int access, unsigned int attr );
526a28de
AJ
47extern obj_handle_t find_inherited_handle( struct process *process, const struct object_ops *ops );
48extern struct handle_table *alloc_handle_table( struct process *process, int count );
49extern struct handle_table *copy_handle_table( struct process *process, struct process *parent );
9fd54b28
EP
50extern unsigned int get_handle_table_count( struct process *process);
51
43c190e7 52#endif /* __WINE_SERVER_HANDLE_H */