ReactOS 0.4.15-dev-7958-gcd0bb1a
udfpubl.h
Go to the documentation of this file.
1
2// Copyright (C) Alexander Telyatnikov, Ivan Keliukh, Yegor Anchishkin, SKIF Software, 1999-2013. Kiev, Ukraine
3// All rights reserved
4// This file was released under the GPLv2 on June 2015.
6/*
7
8Module Name:
9
10 udfpubl.h
11
12Abstract:
13
14 This file defines the interface between UDFFS driver & user
15 applications | drivers.
16
17Environment:
18
19 NT kernel mode or Win32 app
20 */
21
22#ifndef __UDF_PUBL_H__
23#define __UDF_PUBL_H__
24
25#pragma pack(push, 8)
26
27#ifndef CTL_CODE
28#include "winioctl.h"
29#endif
30
31#ifndef IOCTL_UDFFS_BASE
32#define IOCTL_UDFFS_BASE 0x00000911
33#endif
34
35#ifndef IOCTL_UDF_DISABLE_DRIVER
36#define IOCTL_UDF_DISABLE_DRIVER CTL_CODE(IOCTL_UDFFS_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)
37#define IOCTL_UDF_ENABLE_DRIVER CTL_CODE(IOCTL_UDFFS_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS)
38#define IOCTL_UDF_INVALIDATE_VOLUMES CTL_CODE(IOCTL_UDFFS_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS)
39#define IOCTL_UDF_GET_RETRIEVAL_POINTERS CTL_CODE(IOCTL_UDFFS_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS)
40#define IOCTL_UDF_GET_FILE_ALLOCATION_MODE CTL_CODE(IOCTL_UDFFS_BASE, 0x0005, METHOD_BUFFERED, FILE_READ_ACCESS)
41#define IOCTL_UDF_SET_FILE_ALLOCATION_MODE CTL_CODE(IOCTL_UDFFS_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS)
42#define IOCTL_UDF_LOCK_VOLUME_BY_PID CTL_CODE(IOCTL_UDFFS_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS)
43#define IOCTL_UDF_UNLOCK_VOLUME_BY_PID CTL_CODE(IOCTL_UDFFS_BASE, 0x0008, METHOD_BUFFERED, FILE_READ_ACCESS)
44#define IOCTL_UDF_SEND_LICENSE_KEY CTL_CODE(IOCTL_UDFFS_BASE, 0x0009, METHOD_BUFFERED, FILE_READ_ACCESS)
45#define IOCTL_UDF_GET_SPEC_RETRIEVAL_POINTERS CTL_CODE(IOCTL_UDFFS_BASE, 0x000a, METHOD_BUFFERED, FILE_READ_ACCESS)
46#define IOCTL_UDF_GET_VERSION CTL_CODE(IOCTL_UDFFS_BASE, 0x000b, METHOD_BUFFERED, FILE_ANY_ACCESS)
47#define IOCTL_UDF_SET_NOTIFICATION_EVENT CTL_CODE(IOCTL_UDFFS_BASE, 0x000c, METHOD_BUFFERED, FILE_ANY_ACCESS)
48#define IOCTL_UDF_IS_VOLUME_JUST_MOUNTED CTL_CODE(IOCTL_UDFFS_BASE, 0x000d, METHOD_BUFFERED, FILE_ANY_ACCESS)
49#define IOCTL_UDF_REGISTER_AUTOFORMAT CTL_CODE(IOCTL_UDFFS_BASE, 0x000e, METHOD_BUFFERED, FILE_ANY_ACCESS)
50#define IOCTL_UDF_SET_OPTIONS CTL_CODE(IOCTL_UDFFS_BASE, 0x000f, METHOD_BUFFERED, FILE_ANY_ACCESS)
51
53
54 CHAR AllocMode; // see definition of ICB_FLAG_AD_XXX in Ecma_167.h
55
57
58// setting default AllocMode
59//#define ICB_FLAG_AD_DEFAULT_ALLOC_MODE (UCHAR)(0xff)
60
63
64/*typedef struct _RETRIEVAL_POINTERS_BUFFER {
65 int a;
66} RETRIEVAL_POINTERS_BUFFER, *PRETRIEVAL_POINTERS_BUFFER;
67*/
69 ULONG PID; // -1 for current process
71
74
75#define UDF_DOS_FS_NAME L"\\DosDevices\\DwUdf"
76#define UDF_WIN_FS_NAME "\\\\.\\DwUdf"
77
78#define UDF_ISO_STREAM_NAME "UdfIsoBridgeStructure"
79#define UDF_ISO_STREAM_NAME_W L"UdfIsoBridgeStructure"
80
81#define UDF_CONFIG_STREAM_NAME "DvdWriteNow.cfg"
82#define UDF_CONFIG_STREAM_NAME_W L"DvdWriteNow.cfg"
83
84#ifdef FSCTL_GET_RETRIEVAL_POINTERS
85
86typedef struct _UDF_GET_SPEC_RETRIEVAL_POINTERS_IN {
88 ULONG Special;
89} UDF_GET_SPEC_RETRIEVAL_POINTERS_IN, *PUDF_GET_SPEC_RETRIEVAL_POINTERS_IN;
90
91#endif //FSCTL_GET_RETRIEVAL_POINTERS
92
93typedef struct _UDF_GET_VERSION_OUT {
94 struct {
106
107#define UDF_USER_FS_FLAGS_RO 0x0001
108#define UDF_USER_FS_FLAGS_RAW 0x0002
109#define UDF_USER_FS_FLAGS_OUR_DRIVER 0x0004
110#define UDF_USER_FS_FLAGS_FP 0x0008
111#define UDF_USER_FS_FLAGS_MEDIA_RO 0x0010
112#define UDF_USER_FS_FLAGS_SOFT_RO 0x0020
113#define UDF_USER_FS_FLAGS_HW_RO 0x0040
114#define UDF_USER_FS_FLAGS_MEDIA_DEFECT_RO 0x0080
115#define UDF_USER_FS_FLAGS_PART_RO 0x0100 // partition is r/o
116#define UDF_USER_FS_FLAGS_NEW_FS_RO 0x0200
117
118#endif //IOCTL_UDF_DISABLE_DRIVER
119
120#define UDF_PART_DAMAGED_RW (0x00)
121#define UDF_PART_DAMAGED_RO (0x01)
122#define UDF_PART_DAMAGED_NO (0x02)
123
124typedef struct _UDF_SET_OPTIONS_IN {
125 struct {
131
132#define UDF_SET_OPTIONS_FLAG_TEMPORARY 0x00
133#define UDF_SET_OPTIONS_FLAG_DISK 0x01
134#define UDF_SET_OPTIONS_FLAG_DRIVE 0x02
135#define UDF_SET_OPTIONS_FLAG_GLOBAL 0x03
136#define UDF_SET_OPTIONS_FLAG_MASK 0x03
137
138#pragma pack(pop)
139
140#endif //__UDF_PUBL_H__
struct _UDF_GET_VERSION_OUT::@961 header
ULONG DriverVersionBuild
Definition: udfpubl.h:98
ULONG DriverVersionMj
Definition: udfpubl.h:96
ULONG DriverVersionMn
Definition: udfpubl.h:97
struct _UDF_SET_OPTIONS_IN::@962 header
uint32_t ULONG
Definition: typedefs.h:59
struct _UDF_GET_VERSION_OUT UDF_GET_VERSION_OUT
struct _UDF_GET_FILE_ALLOCATION_MODE_OUT UDF_GET_FILE_ALLOCATION_MODE_OUT
PUDF_LOCK_VOLUME_BY_PID_IN PUDF_UNLOCK_VOLUME_BY_PID_IN
Definition: udfpubl.h:73
struct _UDF_LOCK_VOLUME_BY_PID_IN UDF_LOCK_VOLUME_BY_PID_IN
struct _UDF_SET_OPTIONS_IN * PUDF_SET_OPTIONS_IN
struct _UDF_GET_FILE_ALLOCATION_MODE_OUT * PUDF_GET_FILE_ALLOCATION_MODE_OUT
PUDF_GET_FILE_ALLOCATION_MODE_OUT PUDF_SET_FILE_ALLOCATION_MODE_IN
Definition: udfpubl.h:62
struct _UDF_SET_OPTIONS_IN UDF_SET_OPTIONS_IN
struct _UDF_GET_VERSION_OUT * PUDF_GET_VERSION_OUT
UDF_GET_FILE_ALLOCATION_MODE_OUT UDF_SET_FILE_ALLOCATION_MODE_IN
Definition: udfpubl.h:61
struct _UDF_LOCK_VOLUME_BY_PID_IN * PUDF_LOCK_VOLUME_BY_PID_IN
UDF_LOCK_VOLUME_BY_PID_IN UDF_UNLOCK_VOLUME_BY_PID_IN
Definition: udfpubl.h:72
unsigned char UCHAR
Definition: xmlstorage.h:181
char CHAR
Definition: xmlstorage.h:175