Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenntddrdsk.h
Go to the documentation of this file.
00001 /* 00002 * PROJECT: ReactOS Kernel 00003 * LICENSE: BSD - See COPYING.ARM in the top level directory 00004 * FILE: include/reactos/drivers/ntddrdsk.h 00005 * PURPOSE: Constants and types for accessing the RAM disk device 00006 * PROGRAMMERS: ReactOS Portable Systems Group 00007 */ 00008 #ifndef _NTDDRDSK_H_ 00009 #define _NTDDRDSK_H_ 00010 00011 #if _MSC_VER > 1000 00012 #pragma once 00013 #endif 00014 00015 #ifdef __cplusplus1 00016 extern "C" { 00017 #endif 00018 00019 // 00020 // This guid identifies a RAM disk volume 00021 // 00022 DEFINE_GUID(RAMDISK_BOOTDISK_GUID, 0xd9b257fc, 0x684e, 0x4dcb, 0x79, 0xab, 0xf6, 0xa2, 0xcf, 0x03, 0x50, 0xb7); 00023 00024 // 00025 // Device Name - this string is the name of the device. It is the name 00026 // that should be passed to NtOpenFile when accessing the device. 00027 // 00028 // Note: For devices that support multiple units, it should be suffixed 00029 // with the Ascii representation of the unit number. 00030 // 00031 #define DD_RAMDISK_DEVICE_NAME "\\Device\\Ramdisk" 00032 00033 // 00034 // IoControlCode values for ramdisk devices. 00035 // 00036 #define IOCTL_RAMDISK_BASE FILE_DEVICE_VIRTUAL_DISK 00037 #define FSCTL_CREATE_RAM_DISK CTL_CODE(FILE_DEVICE_VIRTUAL_DISK, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS) 00038 00039 // 00040 // Disk Types 00041 // 00042 #define RAMDISK_REGISTRY_DISK 1 // Loaded from the registry 00043 #define RAMDISK_MEMORY_MAPPED_DISK 2 // Loaded from the registry 00044 #define RAMDISK_BOOT_DISK 3 // Used as a boot device 00045 #define RAMDISK_WIM_DISK 4 // Used as an installation device 00046 00047 // 00048 // Options when creating a ramdisk 00049 // 00050 typedef struct _RAMDISK_CREATE_OPTIONS 00051 { 00052 ULONG Readonly:1; 00053 ULONG Fixed:1; 00054 ULONG NoDriveLetter:1; 00055 ULONG NoDosDevice:1; 00056 ULONG Hidden:1; 00057 ULONG ExportAsCd:1; 00058 } RAMDISK_CREATE_OPTIONS; 00059 00060 // 00061 // This structure is passed in for a FSCTL_CREATE_RAM_DISK call 00062 // 00063 typedef struct _RAMDISK_CREATE_INPUT 00064 { 00065 ULONG Version; 00066 GUID DiskGuid; 00067 ULONG DiskType; 00068 RAMDISK_CREATE_OPTIONS Options; 00069 LARGE_INTEGER DiskLength; 00070 LONG DiskOffset; 00071 union 00072 { 00073 struct 00074 { 00075 ULONG ViewCount; 00076 SIZE_T ViewLength; 00077 WCHAR FileName[ANYSIZE_ARRAY]; 00078 }; 00079 struct 00080 { 00081 ULONG_PTR BasePage; 00082 WCHAR DriveLetter; 00083 }; 00084 PVOID BaseAddress; 00085 }; 00086 } RAMDISK_CREATE_INPUT, *PRAMDISK_CREATE_INPUT; 00087 00088 #ifdef __cplusplus 00089 } 00090 #endif 00091 00092 #endif // _NTDDRDSK_H_ Generated on Sun May 27 2012 04:33:08 for ReactOS by
1.7.6.1
|