update for HEAD-2003091401
[reactos.git] / 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 #include <internal/io.h>
16
17 #define NDEBUG
18 #include <internal/debug.h>
19
20 /* FUNCTIONS *****************************************************************/
21
22 NTSTATUS STDCALL
23 NtCreateMailslotFile(OUT PHANDLE FileHandle,
24                      IN ACCESS_MASK DesiredAccess,
25                      IN POBJECT_ATTRIBUTES ObjectAttributes,
26                      OUT PIO_STATUS_BLOCK IoStatusBlock,
27                      IN ULONG CreateOptions,
28                      IN ULONG Param,                    /* FIXME: ??? */
29                      IN ULONG MaxMessageSize,
30                      IN PLARGE_INTEGER TimeOut)
31 {
32    IO_MAILSLOT_CREATE_BUFFER Buffer;
33    
34    DPRINT("NtCreateMailslotFile(FileHandle %x, DesiredAccess %x, "
35           "ObjectAttributes %x ObjectAttributes->ObjectName->Buffer %S)\n",
36           FileHandle,DesiredAccess,ObjectAttributes,
37           ObjectAttributes->ObjectName->Buffer);
38    
39    assert_irql(PASSIVE_LEVEL);
40    
41    if (TimeOut != NULL)
42      {
43         Buffer.TimeOut.QuadPart = TimeOut->QuadPart;
44      }
45    else
46      {
47         Buffer.TimeOut.QuadPart = 0;
48      }
49    Buffer.Param = Param;                        /* FIXME: ??? */
50    Buffer.MaxMessageSize = MaxMessageSize;
51
52    return IoCreateFile(FileHandle,
53                        DesiredAccess,
54                        ObjectAttributes,
55                        IoStatusBlock,
56                        NULL,
57                        FILE_ATTRIBUTE_NORMAL,
58                        FILE_SHARE_READ | FILE_SHARE_WRITE,
59                        FILE_CREATE,
60                        CreateOptions,
61                        NULL,
62                        0,
63                        CreateFileTypeMailslot,
64                        (PVOID)&Buffer,
65                        0);
66 }
67
68 /* EOF */