ReactOS 0.4.15-dev-8434-g155a7c7
mountdev.h
Go to the documentation of this file.
1/*
2 * mountmgr.h
3 *
4 * Mount Manager mounted devices interface
5 *
6 * This file is part of the ReactOS DDK package.
7 *
8 * Contributors:
9 * Magnus Olsen <greatlord@reactos.org>
10 * Amine Khaldi <amine.khaldi@reactos.org>
11 * Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
12 *
13 * THIS SOFTWARE IS NOT COPYRIGHTED
14 *
15 * This source code is offered for use in the public domain. You may
16 * use, modify or distribute it freely.
17 *
18 * This code is distributed in the hope that it will be useful but
19 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
20 * DISCLAIMED. This includes but is not limited to warranties of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
22 *
23 */
24
25#ifndef _MOUNTDEV_
26#define _MOUNTDEV_
27
28#pragma once
29
30#include <mountmgr.h>
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
36/* Windows 2003 fixed the required access for some IOCTLs */
37#if (NTDDI_VERSION >= NTDDI_WS03)
38 #define EXPECTED_ACCESS (FILE_READ_ACCESS | FILE_WRITE_ACCESS)
39#else
40 #define EXPECTED_ACCESS FILE_ANY_ACCESS
41#endif
42
43#if (NTDDI_VERSION >= NTDDI_WIN2K)
44
45#define IOCTL_MOUNTDEV_QUERY_UNIQUE_ID CTL_CODE(MOUNTDEVCONTROLTYPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
46#define IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME CTL_CODE(MOUNTDEVCONTROLTYPE, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
47#define IOCTL_MOUNTDEV_LINK_CREATED CTL_CODE(MOUNTDEVCONTROLTYPE, 4, METHOD_BUFFERED, EXPECTED_ACCESS)
48#define IOCTL_MOUNTDEV_LINK_DELETED CTL_CODE(MOUNTDEVCONTROLTYPE, 5, METHOD_BUFFERED, EXPECTED_ACCESS)
49
50typedef struct _MOUNTDEV_UNIQUE_ID {
52 UCHAR UniqueId[1];
54
55typedef struct _MOUNTDEV_SUGGESTED_LINK_NAME {
58 WCHAR Name[1];
60
61#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
62
63#if (NTDDI_VERSION >= NTDDI_WINXP)
64
65#define IOCTL_MOUNTDEV_QUERY_STABLE_GUID CTL_CODE(MOUNTDEVCONTROLTYPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
66
67typedef struct _MOUNTDEV_STABLE_GUID {
70
71#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
72
73/* NOTE: Support for IOCTL_MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY
74 * seems to have been removed from official WDK in Vista+ */
75#define IOCTL_MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY CTL_CODE(MOUNTDEVCONTROLTYPE, 1, METHOD_BUFFERED, EXPECTED_ACCESS)
83
84#ifdef __cplusplus
85} /* extern "C" */
86#endif
87
88#endif /* _MOUNTDEV_ */
unsigned char BOOLEAN
struct _MOUNTDEV_UNIQUE_ID MOUNTDEV_UNIQUE_ID
struct _MOUNTDEV_STABLE_GUID * PMOUNTDEV_STABLE_GUID
struct _MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY_OUTPUT MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY_OUTPUT
struct _MOUNTDEV_SUGGESTED_LINK_NAME * PMOUNTDEV_SUGGESTED_LINK_NAME
struct _MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY_OUTPUT * PMOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY_OUTPUT
struct _MOUNTDEV_SUGGESTED_LINK_NAME MOUNTDEV_SUGGESTED_LINK_NAME
struct _MOUNTDEV_UNIQUE_ID * PMOUNTDEV_UNIQUE_ID
struct _MOUNTDEV_STABLE_GUID MOUNTDEV_STABLE_GUID
unsigned short USHORT
Definition: pedump.c:61
USHORT UniqueIdLength
Definition: imports.h:138
UCHAR UniqueId[1]
Definition: imports.h:139
uint32_t ULONG
Definition: typedefs.h:59
unsigned char UCHAR
Definition: xmlstorage.h:181
__wchar_t WCHAR
Definition: xmlstorage.h:180