Added ObGetObjectHandleCount().
[reactos.git] / reactos / ntoskrnl / io / mailslot.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: ntoskrnl/ke/bug.c
5 * PURPOSE: Graceful system shutdown if a bug is detected
6 * PROGRAMMER: David Welch (welch@mcmail.com)
7 * UPDATE HISTORY:
8 * Created 22/05/98
9 Changed NtCreateMailslotFile
10 */
11
12 /* INCLUDES *****************************************************************/
13
14 #include <ddk/ntddk.h>
15
16 #define NDEBUG
17 #include <internal/debug.h>
18
19 /* FUNCTIONS *****************************************************************/
20
21 NTSTATUS STDCALL
22 NtCreateMailslotFile(OUT PHANDLE FileHandle,
23 IN ACCESS_MASK DesiredAccess,
24 IN POBJECT_ATTRIBUTES ObjectAttributes,
25 OUT PIO_STATUS_BLOCK IoStatusBlock,
26 IN ULONG CreateOptions,
27 IN ULONG Param, /* FIXME: ??? */
28 IN ULONG MaxMessageSize,
29 IN PLARGE_INTEGER TimeOut)
30 {
31 IO_MAILSLOT_CREATE_BUFFER Buffer;
32
33 DPRINT("NtCreateMailslotFile(FileHandle %x, DesiredAccess %x, "
34 "ObjectAttributes %x ObjectAttributes->ObjectName->Buffer %S)\n",
35 FileHandle,DesiredAccess,ObjectAttributes,
36 ObjectAttributes->ObjectName->Buffer);
37
38 assert_irql(PASSIVE_LEVEL);
39
40 if (TimeOut != NULL)
41 {
42 Buffer.TimeOut.QuadPart = TimeOut->QuadPart;
43 }
44 else
45 {
46 Buffer.TimeOut.QuadPart = 0;
47 }
48 Buffer.Param = Param; /* FIXME: ??? */
49 Buffer.MaxMessageSize = MaxMessageSize;
50
51 return IoCreateFile(FileHandle,
52 DesiredAccess,
53 ObjectAttributes,
54 IoStatusBlock,
55 NULL,
56 FILE_ATTRIBUTE_NORMAL,
57 FILE_SHARE_READ | FILE_SHARE_WRITE,
58 FILE_CREATE,
59 CreateOptions,
60 NULL,
61 0,
62 CreateFileTypeMailslot,
63 (PVOID)&Buffer,
64 0);
65 }
66
67 /* EOF */