Naveen Neel / shedskin
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers mountdev.h Source File

mountdev.h

00001 /*
00002  * mountdev.h
00003  *
00004  * Mount point manager/mounted devices interface.
00005  *
00006  * This file is part of the w32api package.
00007  *
00008  * Contributors:
00009  *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
00010  *
00011  * THIS SOFTWARE IS NOT COPYRIGHTED
00012  *
00013  * This source code is offered for use in the public domain. You may
00014  * use, modify or distribute it freely.
00015  *
00016  * This code is distributed in the hope that it will be useful but
00017  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
00018  * DISCLAIMED. This includes but is not limited to warranties of
00019  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00020  *
00021  */
00022 
00023 #ifndef __MOUNTDEV_H
00024 #define __MOUNTDEV_H
00025 
00026 #if __GNUC__ >=3
00027 #pragma GCC system_header
00028 #endif
00029 
00030 #ifdef __cplusplus
00031 extern "C" {
00032 #endif
00033 
00034 #include "ntddk.h"
00035 #include "mountmgr.h"
00036 
00037 #define IOCTL_MOUNTDEV_QUERY_DEVICE_NAME \
00038   CTL_CODE(MOUNTDEVCONTROLTYPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
00039 
00040 #define IOCTL_MOUNTDEV_QUERY_UNIQUE_ID \
00041   CTL_CODE(MOUNTDEVCONTROLTYPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
00042 
00043 #define IOCTL_MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY \
00044   CTL_CODE(MOUNTDEVCONTROLTYPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
00045 
00046 #define IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME \
00047   CTL_CODE(MOUNTDEVCONTROLTYPE, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
00048 
00049 #define IOCTL_MOUNTDEV_LINK_CREATED \
00050   CTL_CODE(MOUNTDEVCONTROLTYPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
00051 
00052 #define IOCTL_MOUNTDEV_LINK_DELETED \
00053   CTL_CODE(MOUNTDEVCONTROLTYPE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
00054 
00055 
00056 typedef struct _MOUNTDEV_SUGGESTED_LINK_NAME {
00057   BOOLEAN  UseOnlyIfThereAreNoOtherLinks;
00058   USHORT  NameLength;
00059   WCHAR  Name[1];
00060 } MOUNTDEV_SUGGESTED_LINK_NAME, *PMOUNTDEV_SUGGESTED_LINK_NAME;
00061 
00062 typedef struct _MOUNTDEV_UNIQUE_ID {
00063   USHORT  UniqueIdLength;
00064   UCHAR  UniqueId[1];
00065 } MOUNTDEV_UNIQUE_ID, *PMOUNTDEV_UNIQUE_ID;
00066 
00067 typedef struct _MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY_OUTPUT {
00068   ULONG  Size;
00069   USHORT  OldUniqueIdOffset;
00070   USHORT  OldUniqueIdLength;
00071   USHORT  NewUniqueIdOffset;
00072   USHORT  NewUniqueIdLength;
00073 } MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY_OUTPUT;
00074 
00075 #ifdef __cplusplus
00076 }
00077 #endif
00078 
00079 #endif /* __MOUNTDEV_H */