/* * mountdev.h * * Mount point manager/mounted devices interface. * * This file is part of the MinGW package. * * Contributors: * Created by Casper S. Hornstrup * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */ #ifndef __MOUNTDEV_H #define __MOUNTDEV_H #if __GNUC__ >=3 #pragma GCC system_header #endif #ifdef __cplusplus extern "C" { #endif #pragma pack(push,4) #include "ntddk.h" #include "mountmgr.h" #define IOCTL_MOUNTDEV_QUERY_DEVICE_NAME \ CTL_CODE(MOUNTDEVCONTROLTYPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_MOUNTDEV_QUERY_UNIQUE_ID \ CTL_CODE(MOUNTDEVCONTROLTYPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY \ CTL_CODE(MOUNTDEVCONTROLTYPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME \ CTL_CODE(MOUNTDEVCONTROLTYPE, 3, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_MOUNTDEV_LINK_CREATED \ CTL_CODE(MOUNTDEVCONTROLTYPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_MOUNTDEV_LINK_DELETED \ CTL_CODE(MOUNTDEVCONTROLTYPE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS) typedef struct _MOUNTDEV_SUGGESTED_LINK_NAME { BOOLEAN UseOnlyIfThereAreNoOtherLinks; USHORT NameLength; WCHAR Name[1]; } MOUNTDEV_SUGGESTED_LINK_NAME, *PMOUNTDEV_SUGGESTED_LINK_NAME; typedef struct _MOUNTDEV_UNIQUE_ID { USHORT UniqueIdLength; UCHAR UniqueId[1]; } MOUNTDEV_UNIQUE_ID, *PMOUNTDEV_UNIQUE_ID; typedef struct _MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY_OUTPUT { ULONG Size; USHORT OldUniqueIdOffset; USHORT OldUniqueIdLength; USHORT NewUniqueIdOffset; USHORT NewUniqueIdLength; } MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY_OUTPUT; #pragma pack(pop) #ifdef __cplusplus } #endif #endif /* __MOUNTDEV_H */