* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-/* $Id: handle.c,v 1.38 2002/06/11 22:09:02 dwelch Exp $
+/* $Id: handle.c,v 1.39 2002/09/07 15:13:04 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
/* INCLUDES ****************************************************************/
-#include <ddk/ntddk.h>
-#include <internal/ob.h>
-#include <internal/ps.h>
-#include <internal/pool.h>
-#include <internal/safe.h>
+#include <ntoskrnl.h>
#define NDEBUG
#include <internal/debug.h>
+
/* TYPES *******************************************************************/
/*
BOOLEAN Inherit;
} HANDLE_REP, *PHANDLE_REP;
-#define HANDLE_BLOCK_ENTRIES ((PAGESIZE-sizeof(LIST_ENTRY))/sizeof(HANDLE_REP))
+#define HANDLE_BLOCK_ENTRIES ((PAGE_SIZE-sizeof(LIST_ENTRY))/sizeof(HANDLE_REP))
/*
/* FUNCTIONS ***************************************************************/
-static PHANDLE_REP ObpGetObjectByHandle(PHANDLE_TABLE HandleTable, HANDLE h)
+static PHANDLE_REP ObpGetObjectByHandle(PROS_HANDLE_TABLE HandleTable, HANDLE h)
/*
* FUNCTION: Get the data structure for a handle
* ARGUMENTS:
NtDuplicateObject (IN HANDLE SourceProcessHandle,
IN HANDLE SourceHandle,
IN HANDLE TargetProcessHandle,
- OUT PHANDLE UnsafeTargetHandle,
+ OUT PHANDLE UnsafeTargetHandle OPTIONAL,
IN ACCESS_MASK DesiredAccess,
- IN BOOLEAN InheritHandle,
+ IN ULONG Attributes,
ULONG Options)
/*
* FUNCTION: Copies a handle from one process space to another
* TargetHandle (OUT) = Caller should supply storage for the
* duplicated handle.
* DesiredAccess = The desired access to the handle.
- * InheritHandle = Indicates wheter the new handle will be inheritable
- * or not.
+ * Attritbutes = Attributes. Eg. inheritable.
* Options = Specifies special actions upon duplicating the handle.
* Can be one of the values DUPLICATE_CLOSE_SOURCE |
* DUPLICATE_SAME_ACCESS. DUPLICATE_CLOSE_SOURCE specifies
ObCreateHandle(TargetProcess,
ObjectBody,
DesiredAccess,
- InheritHandle,
+ Attributes & HANDLE_FLAG_INHERIT,
&TargetHandle);
if (Options & DUPLICATE_CLOSE_SOURCE)
VOID ObCloseAllHandles(PEPROCESS Process)
{
KIRQL oldIrql;
- PHANDLE_TABLE HandleTable;
+ PROS_HANDLE_TABLE HandleTable;
PLIST_ENTRY current_entry;
PHANDLE_BLOCK current;
ULONG i;
*/
{
PLIST_ENTRY current = NULL;
- PHANDLE_TABLE HandleTable = NULL;
+ PROS_HANDLE_TABLE HandleTable = NULL;
ObCloseAllHandles(Process);
* Process = Process whose handle table is to be created
*/
{
- PHANDLE_TABLE ParentHandleTable, HandleTable;
+ PROS_HANDLE_TABLE ParentHandleTable, HandleTable;
KIRQL oldIrql;
PLIST_ENTRY parent_current;
ULONG i;
PHANDLE_REP Rep;
PVOID ObjectBody;
KIRQL oldIrql;
- PHANDLE_TABLE HandleTable;
+ PROS_HANDLE_TABLE HandleTable;
POBJECT_HEADER Header;
DPRINT("ObDeleteHandle(Handle %x)\n",Handle);
unsigned int handle=1;
unsigned int i;
HANDLE_BLOCK* new_blk = NULL;
- PHANDLE_TABLE HandleTable;
+ PROS_HANDLE_TABLE HandleTable;
KIRQL oldlvl;
DPRINT("ObCreateHandle(Process %x, obj %x)\n",Process,ObjectBody);