97 lines
2.1 KiB
C
97 lines
2.1 KiB
C
/*++
|
||
|
||
Copyright (c) 1989 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
open.c
|
||
|
||
Abstract:
|
||
|
||
This module contains the code to implement the NtOpenFile system
|
||
service.
|
||
|
||
Author:
|
||
|
||
Darryl E. Havens (darrylh) 25-Oct-1989
|
||
|
||
Environment:
|
||
|
||
Kernel mode
|
||
|
||
Revision History:
|
||
|
||
|
||
--*/
|
||
|
||
#include "iomgr.h"
|
||
|
||
#ifdef ALLOC_PRAGMA
|
||
#pragma alloc_text(PAGE, NtOpenFile)
|
||
#endif
|
||
|
||
NTSTATUS
|
||
NtOpenFile(
|
||
OUT PHANDLE FileHandle,
|
||
IN ACCESS_MASK DesiredAccess,
|
||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
||
IN ULONG ShareAccess,
|
||
IN ULONG OpenOptions
|
||
)
|
||
|
||
/*++
|
||
|
||
Routine Description:
|
||
|
||
This service opens a file or a device. It is used to establish a file
|
||
handle to the open device/file that can then be used in subsequent
|
||
operations to perform I/O operations on.
|
||
|
||
Arguments:
|
||
|
||
FileHandle - A pointer to a variable to receive the handle to the open file.
|
||
|
||
DesiredAccess - Supplies the types of access that the caller would like to
|
||
the file.
|
||
|
||
ObjectAttributes - Supplies the attributes to be used for file object (name,
|
||
SECURITY_DESCRIPTOR, etc.)
|
||
|
||
IoStatusBlock - Specifies the address of the caller's I/O status block.
|
||
|
||
ShareAccess - Supplies the types of share access that the caller would like
|
||
to the file.
|
||
|
||
OpenOptions - Caller options for how to perform the open.
|
||
|
||
Return Value:
|
||
|
||
The function value is the final completion status of the open/create
|
||
operation.
|
||
|
||
--*/
|
||
|
||
{
|
||
//
|
||
// Simply invoke the common I/O file creation routine to perform the work.
|
||
//
|
||
|
||
PAGED_CODE();
|
||
|
||
return IoCreateFile( FileHandle,
|
||
DesiredAccess,
|
||
ObjectAttributes,
|
||
IoStatusBlock,
|
||
(PLARGE_INTEGER) NULL,
|
||
0L,
|
||
ShareAccess,
|
||
FILE_OPEN,
|
||
OpenOptions,
|
||
(PVOID) NULL,
|
||
0L,
|
||
CreateFileTypeNone,
|
||
(PVOID) NULL,
|
||
0 );
|
||
}
|