⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 file.h

📁 该项目主要是将wingdows程序直接运行在linux上
💻 H
字号:
/* * file.h * * Copyright (C) 2006  Insigme Co., Ltd * * Authors:  * - Chenzhan Hu * * This software has been developed while working on the Linux Unified Kernel * project (http://linux.insigma.com.cn) in the Insigma Reaserch Institute,   * which is a subdivision of Insigma Co., Ltd (http://www.insigma.com.cn). *  * The project is sponsored by Insigma Co., Ltd. * * The authors can be reached at linux@insigma.com.cn. * * This program is free software; you can redistribute it and/or modify it * under the terms of  the GNU General  Public License as published by the * Free Software Foundation; either version 2 of the  License, or (at your * option) any later version. * * Revision History: *   Jan 2006 - Created. */ /* * file.h: win32 file definition * Reference to Kernel-win32 code */#ifndef _FILE_H#define _FILE_H#include <linux/module.h>#include "object.h"#include "win32.h"#ifdef CONFIG_UNIFIED_KERNEL#define FILE_OPEN			0x00000001#define FILE_CREATE			0x00000002#define FILE_OPEN_IF			0x00000003#define FILE_OVERWRITE			0x00000004#define FILE_OVERWRITE_IF		0x00000005#define FILE_FLAG_WRITE_THROUGH		0x80000000#define FILE_FLAG_OVERLAPPED		0x40000000#define FILE_FLAG_NO_BUFFERING		0x20000000#define FILE_FLAG_RANDOM_ACCESS		0x10000000#define FILE_FLAG_SEQUENTIAL_SCAN	0x08000000#define FILE_FLAG_DELETE_ON_CLOSE	0x04000000#define FILE_FLAG_BACKUP_SEMANTICS	0x02000000#define FILE_FLAG_POSIX_SEMANTICS	0x01000000#define FILE_FLAG_OPEN_REPARSE_POINT	0x00200000#define FILE_FLAG_OPEN_NO_RECALL	0x00100000#define FILE_ATTRIBUTE_READONLY         0x00000001L#define FILE_ATTRIBUTE_HIDDEN           0x00000002L#define FILE_ATTRIBUTE_SYSTEM           0x00000004L#define FILE_ATTRIBUTE_LABEL            0x00000008L  /* Not in Windows API */#define FILE_ATTRIBUTE_DIRECTORY        0x00000010L#define FILE_ATTRIBUTE_ARCHIVE          0x00000020L#define FILE_ATTRIBUTE_NORMAL           0x00000080L#define FILE_ATTRIBUTE_TEMPORARY        0x00000100L#define FILE_ATTRIBUTE_ATOMIC_WRITE     0x00000200L#define FILE_ATTRIBUTE_XACTION_WRITE    0x00000400L#define FILE_ATTRIBUTE_COMPRESSED       0x00000800L#define FILE_ATTRIBUTE_OFFLINE		0x00001000L#define CREATE_NEW			1#define CREATE_ALWAYS			2#define OPEN_EXISTING			3#define OPEN_ALWAYS			4#define TRUNCATE_EXISTING		5#define GENERIC_READ			0x80000000L#define GENERIC_WRITE			0x40000000L#define GENERIC_EXECUTE			0x20000000L#define GENERIC_ALL			0x10000000L#define FILE_SHARE_READ			0x00000001#define FILE_SHARE_WRITE		0x00000002#define FILE_SHARE_DELETE		0x00000004struct file_args {	IN ACCESS_MASK	DesiredAccess;	IN POBJECT_ATTRIBUTES	ObjectAttributes;	OUT PIO_STATUS_BLOCK	IoStatusBlock;	IN PLARGE_INTEGER	AllocationSize OPTIONAL;	IN ULONG	FileAttributes;	IN ULONG	ShareAccess;	IN ULONG	CreateDisposition;	IN ULONG	CreateOptions;	IN PVOID	EaBuffer OPTIONAL;	IN ULONG	EaLength;};typedef struct win32_file_ctrl win32_file_ctrl;/* * process-access file object definition */struct win32_file {	struct list_head	wf_ctllist;	/* file control list next */	win32_file_ctrl		*wf_control;	/* the file control object */	struct file		*wf_file;	/* the Linux file */	__u32			wf_access;	/* file access mode */	__u32			wf_sharing;	/* sharing mode */	__u32			wf_attrs;	/* file open attributes */};extern struct win32_object_class file_objclass;/* * file-control object definition * - links together win32_file objects that use the same file */struct win32_file_ctrl {	struct list_head	wfc_accessors;	/* who's accessing this file */	spinlock_t		wfc_lock;	/* govern access to list */	struct win32_object	*wfc_myself;	/* my own object */};extern void FileClassInit(void);NTSTATUSSTDCALLNtCreateFile(		OUT PHANDLE FileHandle,		IN ACCESS_MASK DesiredAccess,		IN POBJECT_ATTRIBUTES ObjectAttributes,		OUT PIO_STATUS_BLOCK IoStatusBlock,		IN PLARGE_INTEGER AllocationSize OPTIONAL,		IN ULONG FileAttributes,		IN ULONG ShareAccess,		IN ULONG CreateDisposition,		IN ULONG CreateOptions,		IN PVOID EaBuffer OPTIONAL,		IN ULONG EaLength);NTSTATUSSTDCALLNtOpenFile(		OUT PHANDLE FileHandle,		IN ACCESS_MASK DesiredAccess,		IN POBJECT_ATTRIBUTES ObjectAttributes,		OUT PIO_STATUS_BLOCK IoStatusBlock,		IN ULONG ShareAccess,		IN ULONG OpenOptions		);NTSTATUSSTDCALLNtReadFile(IN HANDLE FileHandle,		IN HANDLE Event OPTIONAL,		IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,		IN PVOID ApcContext OPTIONAL,		OUT PIO_STATUS_BLOCK IoStatusBlock,		OUT PVOID Buffer,		IN ULONG Length,		IN PLARGE_INTEGER ByteOffset OPTIONAL, /* NOT optional for asynch. operations! */		IN PULONG Key OPTIONAL);NTSTATUSSTDCALLNtWriteFile (IN HANDLE FileHandle,             IN HANDLE Event OPTIONAL,             IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,             IN PVOID ApcContext OPTIONAL,             OUT PIO_STATUS_BLOCK IoStatusBlock,             IN PVOID Buffer,             IN ULONG Length,             IN PLARGE_INTEGER ByteOffset OPTIONAL, /* NOT optional for asynch. operations! */             IN PULONG Key OPTIONAL);NTSTATUS STDCALLNtSetInformationFile(HANDLE FileHandle,                     PIO_STATUS_BLOCK IoStatusBlock,                     PVOID FileInformation,                     ULONG Length,                     FILE_INFORMATION_CLASS FileInformationClass);NTSTATUS STDCALLNtQueryInformationFile(HANDLE FileHandle,                     PIO_STATUS_BLOCK IoStatusBlock,                     PVOID FileInformation,                     ULONG Length,                     FILE_INFORMATION_CLASS FileInformationClass);NTSTATUS STDCALLNtFlushBuffersFile(IN HANDLE FileHandle,		 OUT PIO_STATUS_BLOCK IoStatusBlock);#endif /* CONFIG_UNIFIED_KERNEL */#endif /* _FILE_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -