Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
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 ); }
|