ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ntddrdsk.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.