Author: ros-arm-bringup Date: Sun Jun 29 21:13:53 2008 New Revision: 34201
URL: http://svn.reactos.org/svn/reactos?rev=34201&view=rev Log: - Define NT RAM Disk device interface (100% compatible with Microsoft ramdisk.sys)
Added: trunk/reactos/include/reactos/drivers/ntddrdsk.h (with props)
Added: trunk/reactos/include/reactos/drivers/ntddrdsk.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/drivers/ntd... ============================================================================== --- trunk/reactos/include/reactos/drivers/ntddrdsk.h (added) +++ trunk/reactos/include/reactos/drivers/ntddrdsk.h [iso-8859-1] Sun Jun 29 21:13:53 2008 @@ -1,0 +1,84 @@ +/* + * PROJECT: ReactOS Kernel + * LICENSE: BSD - See COPYING.ARM in the top level directory + * FILE: include/reactos/drivers/ntddrdsk.h + * PURPOSE: Constants and types for accessing the RAM disk device + * PROGRAMMERS: ReactOS Portable Systems Group + */ +#ifndef _NTDDRDSK_H_ +#define _NTDDRDSK_H_ + +#if _MSC_VER > 1000 +#pragma once +#endif + +#ifdef __cplusplus1 +extern "C" { +#endif + +// +// This guid identifies a RAM disk volume +// +DEFINE_GUID(RAMDISK_BOOTDISK_GUID, 0xd9b257fc, 0x684e, 0x4dcb, 0x79, 0xab, 0xf6, 0xa2, 0xcf, 0x03, 0x50, 0xb7); + +// +// Device Name - this string is the name of the device. It is the name +// that should be passed to NtOpenFile when accessing the device. +// +// Note: For devices that support multiple units, it should be suffixed +// with the Ascii representation of the unit number. +// +#define DD_RAMDISK_DEVICE_NAME "\Device\Ramdisk" + +// +// IoControlCode values for ramdisk devices. +// +#define IOCTL_RAMDISK_BASE FILE_DEVICE_VIRTUAL_DISK +#define FSCTL_CREATE_RAM_DISK CTL_CODE(FILE_DEVICE_VIRTUAL_DISK, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS) + +// +// Options when creating a ramdisk +// +typedef struct _RAMDISK_CREATE_OPTIONS +{ + ULONG Readonly:1; + ULONG Fixed:1; + ULONG NoDriveLetter:1; + ULONG NoDosDevice:1; + ULONG Hidden:1; + ULONG ExportAsCd:1; +} RAMDISK_CREATE_OPTIONS; + +// +// This structure is passed in for a FSCTL_CREATE_RAM_DISK call +// +typedef struct _RAMDISK_CREATE_INPUT +{ + ULONG Version; + GUID DiskGuid; + ULONG DiskType; + RAMDISK_CREATE_OPTIONS Options; + ULONGLONG DiskLength; + ULONG DiskOffset; + union + { + struct + { + ULONG ViewCount; + ULONG ViewLength; + WCHAR FileName[ANYSIZE_ARRAY]; + }; + struct + { + ULONG BasePage; + WCHAR DriveLetter; + }; + PVOID BaseAddress; + }; +} RAMDISK_CREATE_INPUT, *PRAMDISK_CREATE_INPUT; + +#ifdef __cplusplus +} +#endif + +#endif // _NTDDRDSK_H_
Propchange: trunk/reactos/include/reactos/drivers/ntddrdsk.h ------------------------------------------------------------------------------ svn:eol-style = native
Propchange: trunk/reactos/include/reactos/drivers/ntddrdsk.h ------------------------------------------------------------------------------ svn:mime-type = text/plain