| 1 | /** | 
 
 
 
 
 | 2 | * This file has no copyright assigned and is placed in the Public Domain. | 
 
 
 
 
 | 3 | * This file is part of the mingw-w64 runtime package. | 
 
 
 
 
 | 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
 
 
 
 
 | 5 | */ | 
 
 
 
 
 | 6 | #ifndef _INCL_NTMSAPI_H_ | 
 
 
 
 
 | 7 | #define _INCL_NTMSAPI_H_ | 
 
 
 
 
 | 8 |  | 
 
 
 
 
 | 9 | #include <_mingw_unicode.h> | 
 
 
 
 
 | 10 |  | 
 
 
 
 
 | 11 | #pragma pack(8) | 
 
 
 
 
 | 12 |  | 
 
 
 
 
 | 13 | #ifdef __cplusplus | 
 
 
 
 
 | 14 | extern "C" { | 
 
 
 
 
 | 15 | #endif | 
 
 
 
 
 | 16 |  | 
 
 
 
 
 | 17 | /* See http://msdn.microsoft.com/en-us/library/cc245176%28PROT.13%29.aspx */ | 
 
 
 
 
 | 18 | typedef GUID NTMS_GUID; | 
 
 
 
 
 | 19 | typedef GUID *LPNTMS_GUID; | 
 
 
 
 
 | 20 | typedef BYTE *PSECURITY_DESCRIPTOR_NTMS; | 
 
 
 
 
 | 21 | typedef ULONG_PTR NTMS_HANDLE; | 
 
 
 
 
 | 22 |  | 
 
 
 
 
 | 23 |  | 
 
 
 
 
 | 24 | #define NTMS_NULLGUID {0,0,0,{0,0,0,0,0,0,0,0}} | 
 
 
 
 
 | 25 | #define NTMS_IS_NULLGUID(id) ((id.Data1==0)&&(id.Data2==0)&&(id.Data3==0)&& (id.Data4[0]==0)&&(id.Data4[1]==0)&&(id.Data4[2]==0)&& (id.Data4[3]==0)&&(id.Data4[4]==0)&&(id.Data4[5]==0)&& (id.Data4[6]==0)&&(id.Data4[7]==0)) | 
 
 
 
 
 | 26 |  | 
 
 
 
 
 | 27 | #define OpenNtmsSession __MINGW_NAME_AW(OpenNtmsSession) | 
 
 
 
 
 | 28 | #define GetNtmsDeviceName __MINGW_NAME_AW(GetNtmsDeviceName) | 
 
 
 
 
 | 29 | #define GetNtmsObjectInformation __MINGW_NAME_AW(GetNtmsObjectInformation) | 
 
 
 
 
 | 30 | #define SetNtmsObjectInformation __MINGW_NAME_AW(SetNtmsObjectInformation) | 
 
 
 
 
 | 31 | #define CreateNtmsMediaPool __MINGW_NAME_AW(CreateNtmsMediaPool) | 
 
 
 
 
 | 32 | #define GetNtmsMediaPoolName __MINGW_NAME_AW(GetNtmsMediaPoolName) | 
 
 
 
 
 | 33 | #define GetNtmsObjectAttribute __MINGW_NAME_AW(GetNtmsObjectAttribute) | 
 
 
 
 
 | 34 | #define SetNtmsObjectAttribute __MINGW_NAME_AW(SetNtmsObjectAttribute) | 
 
 
 
 
 | 35 | #define GetNtmsUIOptions __MINGW_NAME_AW(GetNtmsUIOptions) | 
 
 
 
 
 | 36 | #define SetNtmsUIOptions __MINGW_NAME_AW(SetNtmsUIOptions) | 
 
 
 
 
 | 37 | #define SubmitNtmsOperatorRequest __MINGW_NAME_AW(SubmitNtmsOperatorRequest) | 
 
 
 
 
 | 38 |  | 
 
 
 
 
 | 39 | #define CreateNtmsMedia __MINGW_NAME_AW(CreateNtmsMedia) | 
 
 
 
 
 | 40 | #define EjectDiskFromSADrive __MINGW_NAME_AW(EjectDiskFromSADrive) | 
 
 
 
 
 | 41 | #define GetVolumesFromDrive __MINGW_NAME_AW(GetVolumesFromDrive) | 
 
 
 
 
 | 42 |  | 
 
 
 
 
 | 43 | #ifndef NTMS_NOREDEF | 
 
 
 
 
 | 44 |  | 
 
 
 
 
 | 45 | enum NtmsObjectsTypes { | 
 
 
 
 
 | 46 | NTMS_UNKNOWN = 0, | 
 
 
 
 
 | 47 | NTMS_OBJECT,NTMS_CHANGER,NTMS_CHANGER_TYPE,NTMS_COMPUTER,NTMS_DRIVE,NTMS_DRIVE_TYPE,NTMS_IEDOOR,NTMS_IEPORT,NTMS_LIBRARY, | 
 
 
 
 
 | 48 | NTMS_LIBREQUEST,NTMS_LOGICAL_MEDIA,NTMS_MEDIA_POOL,NTMS_MEDIA_TYPE,NTMS_PARTITION,NTMS_PHYSICAL_MEDIA,NTMS_STORAGESLOT, | 
 
 
 
 
 | 49 | NTMS_OPREQUEST,NTMS_UI_DESTINATION,NTMS_NUMBER_OF_OBJECT_TYPES | 
 
 
 
 
 | 50 | }; | 
 
 
 
 
 | 51 |  | 
 
 
 
 
 | 52 | typedef struct _NTMS_ASYNC_IO { | 
 
 
 
 
 | 53 | NTMS_GUID OperationId; | 
 
 
 
 
 | 54 | NTMS_GUID EventId; | 
 
 
 
 
 | 55 | DWORD dwOperationType; | 
 
 
 
 
 | 56 | DWORD dwResult; | 
 
 
 
 
 | 57 | DWORD dwAsyncState; | 
 
 
 
 
 | 58 | HANDLE hEvent; | 
 
 
 
 
 | 59 | WINBOOL bOnStateChange; | 
 
 
 
 
 | 60 | } NTMS_ASYNC_IO,*LPNTMS_ASYNC_IO; | 
 
 
 
 
 | 61 |  | 
 
 
 
 
 | 62 | enum NtmsAsyncStatus { | 
 
 
 
 
 | 63 | NTMS_ASYNCSTATE_QUEUED = 0,NTMS_ASYNCSTATE_WAIT_RESOURCE,NTMS_ASYNCSTATE_WAIT_OPERATOR,NTMS_ASYNCSTATE_INPROCESS,NTMS_ASYNCSTATE_COMPLETE | 
 
 
 
 
 | 64 | }; | 
 
 
 
 
 | 65 |  | 
 
 
 
 
 | 66 | enum NtmsAsyncOperations { | 
 
 
 
 
 | 67 | NTMS_ASYNCOP_MOUNT = 1 | 
 
 
 
 
 | 68 | }; | 
 
 
 
 
 | 69 | #endif | 
 
 
 
 
 | 70 |  | 
 
 
 
 
 | 71 | enum NtmsSessionOptions { | 
 
 
 
 
 | 72 | NTMS_SESSION_QUERYEXPEDITE = 0x1 | 
 
 
 
 
 | 73 | }; | 
 
 
 
 
 | 74 |  | 
 
 
 
 
 | 75 | HANDLE WINAPI OpenNtmsSessionW(LPCWSTR lpServer,LPCWSTR lpApplication,DWORD dwOptions); | 
 
 
 
 
 | 76 | HANDLE WINAPI OpenNtmsSessionA(LPCSTR lpServer,LPCSTR lpApplication,DWORD dwOptions); | 
 
 
 
 
 | 77 | DWORD WINAPI CloseNtmsSession(HANDLE hSession); | 
 
 
 
 
 | 78 |  | 
 
 
 
 
 | 79 | #ifndef NTMS_NOREDEF | 
 
 
 
 
 | 80 |  | 
 
 
 
 
 | 81 | enum NtmsMountOptions { | 
 
 
 
 
 | 82 | NTMS_MOUNT_READ = 0x0001,NTMS_MOUNT_WRITE = 0x0002,NTMS_MOUNT_ERROR_NOT_AVAILABLE = 0x0004,NTMS_MOUNT_ERROR_IF_UNAVAILABLE = 0x0004, | 
 
 
 
 
 | 83 | NTMS_MOUNT_ERROR_OFFLINE = 0x0008,NTMS_MOUNT_ERROR_IF_OFFLINE = 0x0008,NTMS_MOUNT_SPECIFIC_DRIVE = 0x0010,NTMS_MOUNT_NOWAIT = 0x0020 | 
 
 
 
 
 | 84 | }; | 
 
 
 
 
 | 85 |  | 
 
 
 
 
 | 86 | enum NtmsDismountOptions { | 
 
 
 
 
 | 87 | NTMS_DISMOUNT_DEFERRED = 0x0001,NTMS_DISMOUNT_IMMEDIATE = 0x0002 | 
 
 
 
 
 | 88 | }; | 
 
 
 
 
 | 89 |  | 
 
 
 
 
 | 90 | enum NtmsMountPriority { | 
 
 
 
 
 | 91 | NTMS_PRIORITY_DEFAULT = 0,NTMS_PRIORITY_HIGHEST = 15,NTMS_PRIORITY_HIGH = 7,NTMS_PRIORITY_NORMAL = 0,NTMS_PRIORITY_LOW = -7, | 
 
 
 
 
 | 92 | NTMS_PRIORITY_LOWEST = -15 | 
 
 
 
 
 | 93 | }; | 
 
 
 
 
 | 94 |  | 
 
 
 
 
 | 95 | typedef struct _NTMS_MOUNT_INFORMATION { | 
 
 
 
 
 | 96 | DWORD dwSize; | 
 
 
 
 
 | 97 | LPVOID lpReserved; | 
 
 
 
 
 | 98 | } NTMS_MOUNT_INFORMATION,*LPNTMS_MOUNT_INFORMATION; | 
 
 
 
 
 | 99 | #endif | 
 
 
 
 
 | 100 |  | 
 
 
 
 
 | 101 | DWORD WINAPI MountNtmsMedia(HANDLE hSession,LPNTMS_GUID lpMediaId,LPNTMS_GUID lpDriveId,DWORD dwCount,DWORD dwOptions,int dwPriority,DWORD dwTimeout,LPNTMS_MOUNT_INFORMATION lpMountInformation); | 
 
 
 
 
 | 102 | DWORD WINAPI DismountNtmsMedia(HANDLE hSession,LPNTMS_GUID lpMediaId,DWORD dwCount,DWORD dwOptions); | 
 
 
 
 
 | 103 |  | 
 
 
 
 
 | 104 | #ifndef NTMS_NOREDEF | 
 
 
 
 
 | 105 | enum NtmsAllocateOptions { | 
 
 
 
 
 | 106 | NTMS_ALLOCATE_NEW = 0x0001,NTMS_ALLOCATE_NEXT = 0x0002,NTMS_ALLOCATE_ERROR_IF_UNAVAILABLE = 0x0004 | 
 
 
 
 
 | 107 | }; | 
 
 
 
 
 | 108 |  | 
 
 
 
 
 | 109 | typedef struct _NTMS_ALLOCATION_INFORMATION { | 
 
 
 
 
 | 110 | DWORD dwSize; | 
 
 
 
 
 | 111 | LPVOID lpReserved; | 
 
 
 
 
 | 112 | NTMS_GUID AllocatedFrom; | 
 
 
 
 
 | 113 | } NTMS_ALLOCATION_INFORMATION,*LPNTMS_ALLOCATION_INFORMATION; | 
 
 
 
 
 | 114 | #endif | 
 
 
 
 
 | 115 |  | 
 
 
 
 
 | 116 | DWORD WINAPI AllocateNtmsMedia(HANDLE hSession,LPNTMS_GUID lpMediaPool,LPNTMS_GUID lpPartition,LPNTMS_GUID lpMediaId,DWORD dwOptions,DWORD dwTimeout,LPNTMS_ALLOCATION_INFORMATION lpAllocateInformation); | 
 
 
 
 
 | 117 | DWORD WINAPI DeallocateNtmsMedia(HANDLE hSession,LPNTMS_GUID lpMediaId,DWORD dwOptions); | 
 
 
 
 
 | 118 | DWORD WINAPI SwapNtmsMedia(HANDLE hSession,LPNTMS_GUID lpMediaId1,LPNTMS_GUID lpMediaId2); | 
 
 
 
 
 | 119 | DWORD WINAPI AddNtmsMediaType(HANDLE hSession,LPNTMS_GUID lpMediaTypeId,LPNTMS_GUID lpLibId); | 
 
 
 
 
 | 120 | DWORD WINAPI DeleteNtmsMediaType(HANDLE hSession,LPNTMS_GUID lpMediaTypeId,LPNTMS_GUID lpLibId); | 
 
 
 
 
 | 121 | DWORD WINAPI ChangeNtmsMediaType(HANDLE hSession,LPNTMS_GUID lpMediaId,LPNTMS_GUID lpPoolId); | 
 
 
 
 
 | 122 | DWORD WINAPI DecommissionNtmsMedia(HANDLE hSession,LPNTMS_GUID lpMediaId); | 
 
 
 
 
 | 123 | DWORD WINAPI SetNtmsMediaComplete(HANDLE hSession,LPNTMS_GUID lpMediaId); | 
 
 
 
 
 | 124 | DWORD WINAPI DeleteNtmsMedia(HANDLE hSession,LPNTMS_GUID lpMediaId); | 
 
 
 
 
 | 125 |  | 
 
 
 
 
 | 126 | #ifndef NTMS_NOREDEF | 
 
 
 
 
 | 127 | enum NtmsCreateOptions { | 
 
 
 
 
 | 128 | NTMS_OPEN_EXISTING = 0x0001,NTMS_CREATE_NEW = 0x0002,NTMS_OPEN_ALWAYS = 0x0003 | 
 
 
 
 
 | 129 | }; | 
 
 
 
 
 | 130 | #endif | 
 
 
 
 
 | 131 |  | 
 
 
 
 
 | 132 | #ifdef PRE_SEVIL | 
 
 
 
 
 | 133 | DWORD WINAPI CreateNtmsMediaPool(HANDLE hSession,LPCTSTR lpPoolName,LPNTMS_GUID lpMediaType,DWORD dwAction,LPSECURITY_ATTRIBUTES lpSecurityAttributes,LPNTMS_GUID lpPoolId); | 
 
 
 
 
 | 134 | #endif | 
 
 
 
 
 | 135 | DWORD WINAPI CreateNtmsMediaPoolA(HANDLE hSession,LPCSTR lpPoolName,LPNTMS_GUID lpMediaType,DWORD dwAction,LPSECURITY_ATTRIBUTES lpSecurityAttributes,LPNTMS_GUID lpPoolId); | 
 
 
 
 
 | 136 | DWORD WINAPI CreateNtmsMediaPoolW(HANDLE hSession,LPCWSTR lpPoolName,LPNTMS_GUID lpMediaType,DWORD dwAction,LPSECURITY_ATTRIBUTES lpSecurityAttributes,LPNTMS_GUID lpPoolId); | 
 
 
 
 
 | 137 | DWORD WINAPI GetNtmsMediaPoolNameA(HANDLE hSession,LPNTMS_GUID lpPoolId,LPSTR lpNameBuf,LPDWORD lpdwBufSize); | 
 
 
 
 
 | 138 | DWORD WINAPI GetNtmsMediaPoolNameW(HANDLE hSession,LPNTMS_GUID lpPoolId,LPWSTR lpNameBuf,LPDWORD lpdwBufSize); | 
 
 
 
 
 | 139 | DWORD WINAPI MoveToNtmsMediaPool(HANDLE hSession,LPNTMS_GUID lpMediaId,LPNTMS_GUID lpPoolId); | 
 
 
 
 
 | 140 | DWORD WINAPI DeleteNtmsMediaPool(HANDLE hSession,LPNTMS_GUID lpPoolId); | 
 
 
 
 
 | 141 | DWORD WINAPI DeleteNtmsLibrary(HANDLE hSession,LPNTMS_GUID lpLibraryId); | 
 
 
 
 
 | 142 | DWORD WINAPI DeleteNtmsDrive(HANDLE hSession,LPNTMS_GUID lpDriveId); | 
 
 
 
 
 | 143 |  | 
 
 
 
 
 | 144 | #define NTMS_OBJECTNAME_LENGTH 64 | 
 
 
 
 
 | 145 | #define NTMS_DESCRIPTION_LENGTH 127 | 
 
 
 
 
 | 146 | #define NTMS_DEVICENAME_LENGTH 64 | 
 
 
 
 
 | 147 | #define NTMS_SERIALNUMBER_LENGTH 32 | 
 
 
 
 
 | 148 | #define NTMS_REVISION_LENGTH 32 | 
 
 
 
 
 | 149 | #define NTMS_BARCODE_LENGTH 64 | 
 
 
 
 
 | 150 | #define NTMS_SEQUENCE_LENGTH 32 | 
 
 
 
 
 | 151 | #define NTMS_VENDORNAME_LENGTH 128 | 
 
 
 
 
 | 152 | #define NTMS_PRODUCTNAME_LENGTH 128 | 
 
 
 
 
 | 153 | #define NTMS_USERNAME_LENGTH 64 | 
 
 
 
 
 | 154 | #define NTMS_APPLICATIONNAME_LENGTH 64 | 
 
 
 
 
 | 155 | #define NTMS_COMPUTERNAME_LENGTH 64 | 
 
 
 
 
 | 156 | #define NTMS_I1_MESSAGE_LENGTH 127 | 
 
 
 
 
 | 157 | #define NTMS_MESSAGE_LENGTH 256 | 
 
 
 
 
 | 158 | #define NTMS_POOLHIERARCHY_LENGTH 512 | 
 
 
 
 
 | 159 | #define NTMS_OMIDLABELID_LENGTH 255 | 
 
 
 
 
 | 160 | #define NTMS_OMIDLABELTYPE_LENGTH 64 | 
 
 
 
 
 | 161 | #define NTMS_OMIDLABELINFO_LENGTH 256 | 
 
 
 
 
 | 162 |  | 
 
 
 
 
 | 163 | #ifndef NTMS_NOREDEF | 
 
 
 
 
 | 164 |  | 
 
 
 
 
 | 165 | enum NtmsDriveState { | 
 
 
 
 
 | 166 | NTMS_DRIVESTATE_DISMOUNTED = 0,NTMS_DRIVESTATE_MOUNTED = 1,NTMS_DRIVESTATE_LOADED = 2,NTMS_DRIVESTATE_UNLOADED = 5, | 
 
 
 
 
 | 167 | NTMS_DRIVESTATE_BEING_CLEANED = 6,NTMS_DRIVESTATE_DISMOUNTABLE = 7 | 
 
 
 
 
 | 168 | }; | 
 
 
 
 
 | 169 |  | 
 
 
 
 
 | 170 | #define _NTMS_DRIVEINFORMATION __MINGW_NAME_AW(_NTMS_DRIVEINFORMATION) | 
 
 
 
 
 | 171 | #define NTMS_DRIVEINFORMATION __MINGW_NAME_AW(NTMS_DRIVEINFORMATION) | 
 
 
 
 
 | 172 |  | 
 
 
 
 
 | 173 | typedef struct _NTMS_DRIVEINFORMATIONA { | 
 
 
 
 
 | 174 | DWORD Number; | 
 
 
 
 
 | 175 | DWORD State; | 
 
 
 
 
 | 176 | NTMS_GUID DriveType; | 
 
 
 
 
 | 177 | CHAR szDeviceName[NTMS_DEVICENAME_LENGTH]; | 
 
 
 
 
 | 178 | CHAR szSerialNumber[NTMS_SERIALNUMBER_LENGTH]; | 
 
 
 
 
 | 179 | CHAR szRevision[NTMS_REVISION_LENGTH]; | 
 
 
 
 
 | 180 | WORD ScsiPort; | 
 
 
 
 
 | 181 | WORD ScsiBus; | 
 
 
 
 
 | 182 | WORD ScsiTarget; | 
 
 
 
 
 | 183 | WORD ScsiLun; | 
 
 
 
 
 | 184 | DWORD dwMountCount; | 
 
 
 
 
 | 185 | SYSTEMTIME LastCleanedTs; | 
 
 
 
 
 | 186 | NTMS_GUID SavedPartitionId; | 
 
 
 
 
 | 187 | NTMS_GUID Library; | 
 
 
 
 
 | 188 | GUID Reserved; | 
 
 
 
 
 | 189 | DWORD dwDeferDismountDelay; | 
 
 
 
 
 | 190 | } NTMS_DRIVEINFORMATIONA; | 
 
 
 
 
 | 191 |  | 
 
 
 
 
 | 192 | typedef struct _NTMS_DRIVEINFORMATIONW { | 
 
 
 
 
 | 193 | DWORD Number; | 
 
 
 
 
 | 194 | DWORD State; | 
 
 
 
 
 | 195 | NTMS_GUID DriveType; | 
 
 
 
 
 | 196 | WCHAR szDeviceName[NTMS_DEVICENAME_LENGTH]; | 
 
 
 
 
 | 197 | WCHAR szSerialNumber[NTMS_SERIALNUMBER_LENGTH]; | 
 
 
 
 
 | 198 | WCHAR szRevision[NTMS_REVISION_LENGTH]; | 
 
 
 
 
 | 199 | WORD ScsiPort; | 
 
 
 
 
 | 200 | WORD ScsiBus; | 
 
 
 
 
 | 201 | WORD ScsiTarget; | 
 
 
 
 
 | 202 | WORD ScsiLun; | 
 
 
 
 
 | 203 | DWORD dwMountCount; | 
 
 
 
 
 | 204 | SYSTEMTIME LastCleanedTs; | 
 
 
 
 
 | 205 | NTMS_GUID SavedPartitionId; | 
 
 
 
 
 | 206 | NTMS_GUID Library; | 
 
 
 
 
 | 207 | GUID Reserved; | 
 
 
 
 
 | 208 | DWORD dwDeferDismountDelay; | 
 
 
 
 
 | 209 | } NTMS_DRIVEINFORMATIONW; | 
 
 
 
 
 | 210 |  | 
 
 
 
 
 | 211 | enum NtmsLibraryType { | 
 
 
 
 
 | 212 | NTMS_LIBRARYTYPE_UNKNOWN = 0,NTMS_LIBRARYTYPE_OFFLINE = 1,NTMS_LIBRARYTYPE_ONLINE = 2,NTMS_LIBRARYTYPE_STANDALONE = 3 | 
 
 
 
 
 | 213 | }; | 
 
 
 
 
 | 214 |  | 
 
 
 
 
 | 215 | enum NtmsLibraryFlags { | 
 
 
 
 
 | 216 | NTMS_LIBRARYFLAG_FIXEDOFFLINE = 0x01,NTMS_LIBRARYFLAG_CLEANERPRESENT = 0x02,NTMS_LIBRARYFLAG_AUTODETECTCHANGE = 0x04, | 
 
 
 
 
 | 217 | NTMS_LIBRARYFLAG_IGNORECLEANERUSESREMAINING = 0x08,NTMS_LIBRARYFLAG_RECOGNIZECLEANERBARCODE = 0x10 | 
 
 
 
 
 | 218 | }; | 
 
 
 
 
 | 219 |  | 
 
 
 
 
 | 220 | enum NtmsInventoryMethod { | 
 
 
 
 
 | 221 | NTMS_INVENTORY_NONE = 0,NTMS_INVENTORY_FAST = 1,NTMS_INVENTORY_OMID = 2,NTMS_INVENTORY_DEFAULT = 3,NTMS_INVENTORY_SLOT = 4, | 
 
 
 
 
 | 222 | NTMS_INVENTORY_STOP = 5,NTMS_INVENTORY_MAX | 
 
 
 
 
 | 223 | }; | 
 
 
 
 
 | 224 |  | 
 
 
 
 
 | 225 | typedef struct _NTMS_LIBRARYINFORMATION { | 
 
 
 
 
 | 226 | DWORD LibraryType; | 
 
 
 
 
 | 227 | NTMS_GUID CleanerSlot; | 
 
 
 
 
 | 228 | NTMS_GUID CleanerSlotDefault; | 
 
 
 
 
 | 229 | WINBOOL LibrarySupportsDriveCleaning; | 
 
 
 
 
 | 230 | WINBOOL BarCodeReaderInstalled; | 
 
 
 
 
 | 231 | DWORD InventoryMethod; | 
 
 
 
 
 | 232 | DWORD dwCleanerUsesRemaining; | 
 
 
 
 
 | 233 | DWORD FirstDriveNumber; | 
 
 
 
 
 | 234 | DWORD dwNumberOfDrives; | 
 
 
 
 
 | 235 | DWORD FirstSlotNumber; | 
 
 
 
 
 | 236 | DWORD dwNumberOfSlots; | 
 
 
 
 
 | 237 | DWORD FirstDoorNumber; | 
 
 
 
 
 | 238 | DWORD dwNumberOfDoors; | 
 
 
 
 
 | 239 | DWORD FirstPortNumber; | 
 
 
 
 
 | 240 | DWORD dwNumberOfPorts; | 
 
 
 
 
 | 241 | DWORD FirstChangerNumber; | 
 
 
 
 
 | 242 | DWORD dwNumberOfChangers; | 
 
 
 
 
 | 243 | DWORD dwNumberOfMedia; | 
 
 
 
 
 | 244 | DWORD dwNumberOfMediaTypes; | 
 
 
 
 
 | 245 | DWORD dwNumberOfLibRequests; | 
 
 
 
 
 | 246 | GUID Reserved; | 
 
 
 
 
 | 247 | WINBOOL AutoRecovery; | 
 
 
 
 
 | 248 | DWORD dwFlags; | 
 
 
 
 
 | 249 | } NTMS_LIBRARYINFORMATION; | 
 
 
 
 
 | 250 |  | 
 
 
 
 
 | 251 | #define _NTMS_CHANGERINFORMATION __MINGW_NAME_AW(_NTMS_CHANGERINFORMATION) | 
 
 
 
 
 | 252 | #define NTMS_CHANGERINFORMATION __MINGW_NAME_AW(NTMS_CHANGERINFORMATION) | 
 
 
 
 
 | 253 |  | 
 
 
 
 
 | 254 | typedef struct _NTMS_CHANGERINFORMATIONA { | 
 
 
 
 
 | 255 | DWORD Number; | 
 
 
 
 
 | 256 | NTMS_GUID ChangerType; | 
 
 
 
 
 | 257 | CHAR szSerialNumber[NTMS_SERIALNUMBER_LENGTH]; | 
 
 
 
 
 | 258 | CHAR szRevision[NTMS_REVISION_LENGTH]; | 
 
 
 
 
 | 259 | CHAR szDeviceName[NTMS_DEVICENAME_LENGTH]; | 
 
 
 
 
 | 260 | WORD ScsiPort; | 
 
 
 
 
 | 261 | WORD ScsiBus; | 
 
 
 
 
 | 262 | WORD ScsiTarget; | 
 
 
 
 
 | 263 | WORD ScsiLun; | 
 
 
 
 
 | 264 | NTMS_GUID Library; | 
 
 
 
 
 | 265 | } NTMS_CHANGERINFORMATIONA; | 
 
 
 
 
 | 266 |  | 
 
 
 
 
 | 267 | typedef struct _NTMS_CHANGERINFORMATIONW { | 
 
 
 
 
 | 268 | DWORD Number; | 
 
 
 
 
 | 269 | NTMS_GUID ChangerType; | 
 
 
 
 
 | 270 | WCHAR szSerialNumber[NTMS_SERIALNUMBER_LENGTH]; | 
 
 
 
 
 | 271 | WCHAR szRevision[NTMS_REVISION_LENGTH]; | 
 
 
 
 
 | 272 | WCHAR szDeviceName[NTMS_DEVICENAME_LENGTH]; | 
 
 
 
 
 | 273 | WORD ScsiPort; | 
 
 
 
 
 | 274 | WORD ScsiBus; | 
 
 
 
 
 | 275 | WORD ScsiTarget; | 
 
 
 
 
 | 276 | WORD ScsiLun; | 
 
 
 
 
 | 277 | NTMS_GUID Library; | 
 
 
 
 
 | 278 | } NTMS_CHANGERINFORMATIONW; | 
 
 
 
 
 | 279 |  | 
 
 
 
 
 | 280 | enum NtmsSlotState { | 
 
 
 
 
 | 281 | NTMS_SLOTSTATE_UNKNOWN = 0,NTMS_SLOTSTATE_FULL = 1,NTMS_SLOTSTATE_EMPTY = 2,NTMS_SLOTSTATE_NOTPRESENT = 3,NTMS_SLOTSTATE_NEEDSINVENTORY = 4 | 
 
 
 
 
 | 282 | }; | 
 
 
 
 
 | 283 |  | 
 
 
 
 
 | 284 | typedef struct _NTMS_STORAGESLOTINFORMATION { | 
 
 
 
 
 | 285 | DWORD Number; | 
 
 
 
 
 | 286 | DWORD State; | 
 
 
 
 
 | 287 | NTMS_GUID Library; | 
 
 
 
 
 | 288 | } NTMS_STORAGESLOTINFORMATION; | 
 
 
 
 
 | 289 |  | 
 
 
 
 
 | 290 | enum NtmsDoorState { | 
 
 
 
 
 | 291 | NTMS_DOORSTATE_UNKNOWN = 0,NTMS_DOORSTATE_CLOSED = 1,NTMS_DOORSTATE_OPEN = 2 | 
 
 
 
 
 | 292 | }; | 
 
 
 
 
 | 293 |  | 
 
 
 
 
 | 294 | typedef struct _NTMS_IEDOORINFORMATION { | 
 
 
 
 
 | 295 | DWORD Number; | 
 
 
 
 
 | 296 | DWORD State; | 
 
 
 
 
 | 297 | WORD MaxOpenSecs; | 
 
 
 
 
 | 298 | NTMS_GUID Library; | 
 
 
 
 
 | 299 | } NTMS_IEDOORINFORMATION; | 
 
 
 
 
 | 300 |  | 
 
 
 
 
 | 301 | enum NtmsPortPosition { | 
 
 
 
 
 | 302 | NTMS_PORTPOSITION_UNKNOWN = 0,NTMS_PORTPOSITION_EXTENDED = 1,NTMS_PORTPOSITION_RETRACTED = 2 | 
 
 
 
 
 | 303 | }; | 
 
 
 
 
 | 304 |  | 
 
 
 
 
 | 305 | enum NtmsPortContent { | 
 
 
 
 
 | 306 | NTMS_PORTCONTENT_UNKNOWN = 0,NTMS_PORTCONTENT_FULL = 1,NTMS_PORTCONTENT_EMPTY = 2 | 
 
 
 
 
 | 307 | }; | 
 
 
 
 
 | 308 |  | 
 
 
 
 
 | 309 | typedef struct _NTMS_IEPORTINFORMATION { | 
 
 
 
 
 | 310 | DWORD Number; | 
 
 
 
 
 | 311 | DWORD Content; | 
 
 
 
 
 | 312 | DWORD Position; | 
 
 
 
 
 | 313 | WORD MaxExtendSecs; | 
 
 
 
 
 | 314 | NTMS_GUID Library; | 
 
 
 
 
 | 315 | } NTMS_IEPORTINFORMATION; | 
 
 
 
 
 | 316 |  | 
 
 
 
 
 | 317 | enum NtmsBarCodeState { | 
 
 
 
 
 | 318 | NTMS_BARCODESTATE_OK = 1,NTMS_BARCODESTATE_UNREADABLE = 2 | 
 
 
 
 
 | 319 | }; | 
 
 
 
 
 | 320 |  | 
 
 
 
 
 | 321 | enum NtmsMediaState { | 
 
 
 
 
 | 322 | NTMS_MEDIASTATE_IDLE = 0, | 
 
 
 
 
 | 323 | NTMS_MEDIASTATE_INUSE,NTMS_MEDIASTATE_MOUNTED,NTMS_MEDIASTATE_LOADED,NTMS_MEDIASTATE_UNLOADED, | 
 
 
 
 
 | 324 | NTMS_MEDIASTATE_OPERROR,NTMS_MEDIASTATE_OPREQ | 
 
 
 
 
 | 325 | }; | 
 
 
 
 
 | 326 |  | 
 
 
 
 
 | 327 | #define _NTMS_PMIDINFORMATION __MINGW_NAME_AW(_NTMS_PMIDINFORMATION) | 
 
 
 
 
 | 328 | #define NTMS_PMIDINFORMATION __MINGW_NAME_AW(NTMS_PMIDINFORMATION) | 
 
 
 
 
 | 329 |  | 
 
 
 
 
 | 330 | typedef struct _NTMS_PMIDINFORMATIONA { | 
 
 
 
 
 | 331 | NTMS_GUID CurrentLibrary; | 
 
 
 
 
 | 332 | NTMS_GUID MediaPool; | 
 
 
 
 
 | 333 | NTMS_GUID Location; | 
 
 
 
 
 | 334 | DWORD LocationType; | 
 
 
 
 
 | 335 | NTMS_GUID MediaType; | 
 
 
 
 
 | 336 | NTMS_GUID HomeSlot; | 
 
 
 
 
 | 337 | CHAR szBarCode[NTMS_BARCODE_LENGTH]; | 
 
 
 
 
 | 338 | DWORD BarCodeState; | 
 
 
 
 
 | 339 | CHAR szSequenceNumber[NTMS_SEQUENCE_LENGTH]; | 
 
 
 
 
 | 340 | DWORD MediaState; | 
 
 
 
 
 | 341 | DWORD dwNumberOfPartitions; | 
 
 
 
 
 | 342 | DWORD dwMediaTypeCode; | 
 
 
 
 
 | 343 | DWORD dwDensityCode; | 
 
 
 
 
 | 344 | NTMS_GUID MountedPartition; | 
 
 
 
 
 | 345 | } NTMS_PMIDINFORMATIONA; | 
 
 
 
 
 | 346 |  | 
 
 
 
 
 | 347 | typedef struct _NTMS_PMIDINFORMATIONW { | 
 
 
 
 
 | 348 | NTMS_GUID CurrentLibrary; | 
 
 
 
 
 | 349 | NTMS_GUID MediaPool; | 
 
 
 
 
 | 350 | NTMS_GUID Location; | 
 
 
 
 
 | 351 | DWORD LocationType; | 
 
 
 
 
 | 352 | NTMS_GUID MediaType; | 
 
 
 
 
 | 353 | NTMS_GUID HomeSlot; | 
 
 
 
 
 | 354 | WCHAR szBarCode[NTMS_BARCODE_LENGTH]; | 
 
 
 
 
 | 355 | DWORD BarCodeState; | 
 
 
 
 
 | 356 | WCHAR szSequenceNumber[NTMS_SEQUENCE_LENGTH]; | 
 
 
 
 
 | 357 | DWORD MediaState; | 
 
 
 
 
 | 358 | DWORD dwNumberOfPartitions; | 
 
 
 
 
 | 359 | DWORD dwMediaTypeCode; | 
 
 
 
 
 | 360 | DWORD dwDensityCode; | 
 
 
 
 
 | 361 | NTMS_GUID MountedPartition; | 
 
 
 
 
 | 362 | } NTMS_PMIDINFORMATIONW; | 
 
 
 
 
 | 363 |  | 
 
 
 
 
 | 364 | typedef struct _NTMS_LMIDINFORMATION { | 
 
 
 
 
 | 365 | NTMS_GUID MediaPool; | 
 
 
 
 
 | 366 | DWORD dwNumberOfPartitions; | 
 
 
 
 
 | 367 | } NTMS_LMIDINFORMATION; | 
 
 
 
 
 | 368 |  | 
 
 
 
 
 | 369 | enum NtmsPartitionState { | 
 
 
 
 
 | 370 | NTMS_PARTSTATE_UNKNOWN = 0, | 
 
 
 
 
 | 371 | NTMS_PARTSTATE_UNPREPARED,NTMS_PARTSTATE_INCOMPATIBLE,NTMS_PARTSTATE_DECOMMISSIONED, | 
 
 
 
 
 | 372 | NTMS_PARTSTATE_AVAILABLE,NTMS_PARTSTATE_ALLOCATED,NTMS_PARTSTATE_COMPLETE,NTMS_PARTSTATE_FOREIGN,NTMS_PARTSTATE_IMPORT, | 
 
 
 
 
 | 373 | NTMS_PARTSTATE_RESERVED | 
 
 
 
 
 | 374 | }; | 
 
 
 
 
 | 375 |  | 
 
 
 
 
 | 376 | #define NTMS_PARTSTATE_NEW NTMS_PARTSTATE_UNKNOWN | 
 
 
 
 
 | 377 |  | 
 
 
 
 
 | 378 | #define _NTMS_PARTITIONINFORMATION __MINGW_NAME_AW(_NTMS_PARTITIONINFORMATION) | 
 
 
 
 
 | 379 | #define NTMS_PARTITIONINFORMATION __MINGW_NAME_AW(NTMS_PARTITIONINFORMATION) | 
 
 
 
 
 | 380 |  | 
 
 
 
 
 | 381 | typedef struct _NTMS_PARTITIONINFORMATIONA { | 
 
 
 
 
 | 382 | NTMS_GUID PhysicalMedia; | 
 
 
 
 
 | 383 | NTMS_GUID LogicalMedia; | 
 
 
 
 
 | 384 | DWORD State; | 
 
 
 
 
 | 385 | WORD Side; | 
 
 
 
 
 | 386 | DWORD dwOmidLabelIdLength; | 
 
 
 
 
 | 387 | BYTE OmidLabelId[NTMS_OMIDLABELID_LENGTH]; | 
 
 
 
 
 | 388 | CHAR szOmidLabelType[NTMS_OMIDLABELTYPE_LENGTH]; | 
 
 
 
 
 | 389 | CHAR szOmidLabelInfo[NTMS_OMIDLABELINFO_LENGTH]; | 
 
 
 
 
 | 390 | DWORD dwMountCount; | 
 
 
 
 
 | 391 | DWORD dwAllocateCount; | 
 
 
 
 
 | 392 | LARGE_INTEGER Capacity; | 
 
 
 
 
 | 393 | } NTMS_PARTITIONINFORMATIONA; | 
 
 
 
 
 | 394 |  | 
 
 
 
 
 | 395 | typedef struct _NTMS_PARTITIONINFORMATIONW { | 
 
 
 
 
 | 396 | NTMS_GUID PhysicalMedia; | 
 
 
 
 
 | 397 | NTMS_GUID LogicalMedia; | 
 
 
 
 
 | 398 | DWORD State; | 
 
 
 
 
 | 399 | WORD Side; | 
 
 
 
 
 | 400 | DWORD dwOmidLabelIdLength; | 
 
 
 
 
 | 401 | BYTE OmidLabelId[NTMS_OMIDLABELID_LENGTH]; | 
 
 
 
 
 | 402 | WCHAR szOmidLabelType[NTMS_OMIDLABELTYPE_LENGTH]; | 
 
 
 
 
 | 403 | WCHAR szOmidLabelInfo[NTMS_OMIDLABELINFO_LENGTH]; | 
 
 
 
 
 | 404 | DWORD dwMountCount; | 
 
 
 
 
 | 405 | DWORD dwAllocateCount; | 
 
 
 
 
 | 406 | LARGE_INTEGER Capacity; | 
 
 
 
 
 | 407 | } NTMS_PARTITIONINFORMATIONW; | 
 
 
 
 
 | 408 |  | 
 
 
 
 
 | 409 | enum NtmsPoolType { | 
 
 
 
 
 | 410 | NTMS_POOLTYPE_UNKNOWN = 0,NTMS_POOLTYPE_SCRATCH = 1,NTMS_POOLTYPE_FOREIGN = 2,NTMS_POOLTYPE_IMPORT = 3,NTMS_POOLTYPE_APPLICATION = 1000 | 
 
 
 
 
 | 411 | }; | 
 
 
 
 
 | 412 |  | 
 
 
 
 
 | 413 | enum NtmsAllocationPolicy { | 
 
 
 
 
 | 414 | NTMS_ALLOCATE_FROMSCRATCH = 1 | 
 
 
 
 
 | 415 | }; | 
 
 
 
 
 | 416 |  | 
 
 
 
 
 | 417 | enum NtmsDeallocationPolicy { | 
 
 
 
 
 | 418 | NTMS_DEALLOCATE_TOSCRATCH = 1 | 
 
 
 
 
 | 419 | }; | 
 
 
 
 
 | 420 |  | 
 
 
 
 
 | 421 | typedef struct _NTMS_MEDIAPOOLINFORMATION { | 
 
 
 
 
 | 422 | DWORD PoolType; | 
 
 
 
 
 | 423 | NTMS_GUID MediaType; | 
 
 
 
 
 | 424 | NTMS_GUID Parent; | 
 
 
 
 
 | 425 | DWORD AllocationPolicy; | 
 
 
 
 
 | 426 | DWORD DeallocationPolicy; | 
 
 
 
 
 | 427 | DWORD dwMaxAllocates; | 
 
 
 
 
 | 428 | DWORD dwNumberOfPhysicalMedia; | 
 
 
 
 
 | 429 | DWORD dwNumberOfLogicalMedia; | 
 
 
 
 
 | 430 | DWORD dwNumberOfMediaPools; | 
 
 
 
 
 | 431 | } NTMS_MEDIAPOOLINFORMATION; | 
 
 
 
 
 | 432 |  | 
 
 
 
 
 | 433 | enum NtmsReadWriteCharacteristics { | 
 
 
 
 
 | 434 | NTMS_MEDIARW_UNKNOWN = 0,NTMS_MEDIARW_REWRITABLE = 1,NTMS_MEDIARW_WRITEONCE = 2,NTMS_MEDIARW_READONLY = 3 | 
 
 
 
 
 | 435 | }; | 
 
 
 
 
 | 436 |  | 
 
 
 
 
 | 437 | typedef struct _NTMS_MEDIATYPEINFORMATION { | 
 
 
 
 
 | 438 | DWORD MediaType; | 
 
 
 
 
 | 439 | DWORD NumberOfSides; | 
 
 
 
 
 | 440 | DWORD ReadWriteCharacteristics; | 
 
 
 
 
 | 441 | DWORD DeviceType; | 
 
 
 
 
 | 442 | } NTMS_MEDIATYPEINFORMATION; | 
 
 
 
 
 | 443 |  | 
 
 
 
 
 | 444 | #define _NTMS_DRIVETYPEINFORMATION __MINGW_NAME_AW(_NTMS_DRIVETYPEINFORMATION) | 
 
 
 
 
 | 445 | #define NTMS_DRIVETYPEINFORMATION __MINGW_NAME_AW(NTMS_DRIVETYPEINFORMATION) | 
 
 
 
 
 | 446 |  | 
 
 
 
 
 | 447 | typedef struct _NTMS_DRIVETYPEINFORMATIONA { | 
 
 
 
 
 | 448 | CHAR szVendor[NTMS_VENDORNAME_LENGTH]; | 
 
 
 
 
 | 449 | CHAR szProduct[NTMS_PRODUCTNAME_LENGTH]; | 
 
 
 
 
 | 450 | DWORD NumberOfHeads; | 
 
 
 
 
 | 451 | DWORD DeviceType; | 
 
 
 
 
 | 452 | } NTMS_DRIVETYPEINFORMATIONA; | 
 
 
 
 
 | 453 |  | 
 
 
 
 
 | 454 | typedef struct _NTMS_DRIVETYPEINFORMATIONW { | 
 
 
 
 
 | 455 | WCHAR szVendor[NTMS_VENDORNAME_LENGTH]; | 
 
 
 
 
 | 456 | WCHAR szProduct[NTMS_PRODUCTNAME_LENGTH]; | 
 
 
 
 
 | 457 | DWORD NumberOfHeads; | 
 
 
 
 
 | 458 | DWORD DeviceType; | 
 
 
 
 
 | 459 | } NTMS_DRIVETYPEINFORMATIONW; | 
 
 
 
 
 | 460 |  | 
 
 
 
 
 | 461 | #define _NTMS_CHANGERTYPEINFORMATION __MINGW_NAME_AW(_NTMS_CHANGERTYPEINFORMATION) | 
 
 
 
 
 | 462 | #define NTMS_CHANGERTYPEINFORMATION __MINGW_NAME_AW(NTMS_CHANGERTYPEINFORMATION) | 
 
 
 
 
 | 463 |  | 
 
 
 
 
 | 464 | typedef struct _NTMS_CHANGERTYPEINFORMATIONA { | 
 
 
 
 
 | 465 | CHAR szVendor[NTMS_VENDORNAME_LENGTH]; | 
 
 
 
 
 | 466 | CHAR szProduct[NTMS_PRODUCTNAME_LENGTH]; | 
 
 
 
 
 | 467 | DWORD DeviceType; | 
 
 
 
 
 | 468 | } NTMS_CHANGERTYPEINFORMATIONA; | 
 
 
 
 
 | 469 |  | 
 
 
 
 
 | 470 | typedef struct _NTMS_CHANGERTYPEINFORMATIONW { | 
 
 
 
 
 | 471 | WCHAR szVendor[NTMS_VENDORNAME_LENGTH]; | 
 
 
 
 
 | 472 | WCHAR szProduct[NTMS_PRODUCTNAME_LENGTH]; | 
 
 
 
 
 | 473 | DWORD DeviceType; | 
 
 
 
 
 | 474 | } NTMS_CHANGERTYPEINFORMATIONW; | 
 
 
 
 
 | 475 |  | 
 
 
 
 
 | 476 | enum NtmsLmOperation { | 
 
 
 
 
 | 477 | NTMS_LM_REMOVE = 0,NTMS_LM_DISABLECHANGER = 1,NTMS_LM_DISABLELIBRARY = 1,NTMS_LM_ENABLECHANGER = 2,NTMS_LM_ENABLELIBRARY = 2, | 
 
 
 
 
 | 478 | NTMS_LM_DISABLEDRIVE = 3,NTMS_LM_ENABLEDRIVE = 4,NTMS_LM_DISABLEMEDIA = 5,NTMS_LM_ENABLEMEDIA = 6,NTMS_LM_UPDATEOMID = 7, | 
 
 
 
 
 | 479 | NTMS_LM_INVENTORY = 8,NTMS_LM_DOORACCESS = 9,NTMS_LM_EJECT = 10,NTMS_LM_EJECTCLEANER = 11,NTMS_LM_INJECT = 12,NTMS_LM_INJECTCLEANER = 13, | 
 
 
 
 
 | 480 | NTMS_LM_PROCESSOMID = 14,NTMS_LM_CLEANDRIVE = 15,NTMS_LM_DISMOUNT = 16,NTMS_LM_MOUNT = 17,NTMS_LM_WRITESCRATCH = 18,NTMS_LM_CLASSIFY = 19, | 
 
 
 
 
 | 481 | NTMS_LM_RESERVECLEANER = 20,NTMS_LM_RELEASECLEANER = 21,NTMS_LM_MAXWORKITEM | 
 
 
 
 
 | 482 | }; | 
 
 
 
 
 | 483 |  | 
 
 
 
 
 | 484 | enum NtmsLmState { | 
 
 
 
 
 | 485 | NTMS_LM_QUEUED = 0,NTMS_LM_INPROCESS = 1,NTMS_LM_PASSED = 2,NTMS_LM_FAILED = 3,NTMS_LM_INVALID = 4,NTMS_LM_WAITING = 5, | 
 
 
 
 
 | 486 | NTMS_LM_DEFERRED = 6,NTMS_LM_DEFFERED = 6,NTMS_LM_CANCELLED = 7,NTMS_LM_STOPPED = 8 | 
 
 
 
 
 | 487 | }; | 
 
 
 
 
 | 488 |  | 
 
 
 
 
 | 489 | #define _NTMS_LIBREQUESTINFORMATION __MINGW_NAME_AW(_NTMS_LIBREQUESTINFORMATION) | 
 
 
 
 
 | 490 | #define NTMS_LIBREQUESTINFORMATION __MINGW_NAME_AW(NTMS_LIBREQUESTINFORMATION) | 
 
 
 
 
 | 491 |  | 
 
 
 
 
 | 492 | typedef struct _NTMS_LIBREQUESTINFORMATIONA { | 
 
 
 
 
 | 493 | DWORD OperationCode; | 
 
 
 
 
 | 494 | DWORD OperationOption; | 
 
 
 
 
 | 495 | DWORD State; | 
 
 
 
 
 | 496 | NTMS_GUID PartitionId; | 
 
 
 
 
 | 497 | NTMS_GUID DriveId; | 
 
 
 
 
 | 498 | NTMS_GUID PhysMediaId; | 
 
 
 
 
 | 499 | NTMS_GUID Library; | 
 
 
 
 
 | 500 | NTMS_GUID SlotId; | 
 
 
 
 
 | 501 | SYSTEMTIME TimeQueued; | 
 
 
 
 
 | 502 | SYSTEMTIME TimeCompleted; | 
 
 
 
 
 | 503 | CHAR szApplication[NTMS_APPLICATIONNAME_LENGTH]; | 
 
 
 
 
 | 504 | CHAR szUser[NTMS_USERNAME_LENGTH]; | 
 
 
 
 
 | 505 | CHAR szComputer[NTMS_COMPUTERNAME_LENGTH]; | 
 
 
 
 
 | 506 | DWORD dwErrorCode; | 
 
 
 
 
 | 507 | NTMS_GUID WorkItemId; | 
 
 
 
 
 | 508 | DWORD dwPriority; | 
 
 
 
 
 | 509 | } NTMS_LIBREQUESTINFORMATIONA; | 
 
 
 
 
 | 510 |  | 
 
 
 
 
 | 511 | typedef struct _NTMS_LIBREQUESTINFORMATIONW { | 
 
 
 
 
 | 512 | DWORD OperationCode; | 
 
 
 
 
 | 513 | DWORD OperationOption; | 
 
 
 
 
 | 514 | DWORD State; | 
 
 
 
 
 | 515 | NTMS_GUID PartitionId; | 
 
 
 
 
 | 516 | NTMS_GUID DriveId; | 
 
 
 
 
 | 517 | NTMS_GUID PhysMediaId; | 
 
 
 
 
 | 518 | NTMS_GUID Library; | 
 
 
 
 
 | 519 | NTMS_GUID SlotId; | 
 
 
 
 
 | 520 | SYSTEMTIME TimeQueued; | 
 
 
 
 
 | 521 | SYSTEMTIME TimeCompleted; | 
 
 
 
 
 | 522 | WCHAR szApplication[NTMS_APPLICATIONNAME_LENGTH]; | 
 
 
 
 
 | 523 | WCHAR szUser[NTMS_USERNAME_LENGTH]; | 
 
 
 
 
 | 524 | WCHAR szComputer[NTMS_COMPUTERNAME_LENGTH]; | 
 
 
 
 
 | 525 | DWORD dwErrorCode; | 
 
 
 
 
 | 526 | NTMS_GUID WorkItemId; | 
 
 
 
 
 | 527 | DWORD dwPriority; | 
 
 
 
 
 | 528 | } NTMS_LIBREQUESTINFORMATIONW; | 
 
 
 
 
 | 529 |  | 
 
 
 
 
 | 530 | enum NtmsOpreqCommand { | 
 
 
 
 
 | 531 | NTMS_OPREQ_UNKNOWN = 0,NTMS_OPREQ_NEWMEDIA,NTMS_OPREQ_CLEANER,NTMS_OPREQ_DEVICESERVICE,NTMS_OPREQ_MOVEMEDIA, | 
 
 
 
 
 | 532 | NTMS_OPREQ_MESSAGE | 
 
 
 
 
 | 533 | }; | 
 
 
 
 
 | 534 |  | 
 
 
 
 
 | 535 | enum NtmsOpreqState { | 
 
 
 
 
 | 536 | NTMS_OPSTATE_UNKNOWN = 0, | 
 
 
 
 
 | 537 | NTMS_OPSTATE_SUBMITTED,NTMS_OPSTATE_ACTIVE,NTMS_OPSTATE_INPROGRESS,NTMS_OPSTATE_REFUSED, | 
 
 
 
 
 | 538 | NTMS_OPSTATE_COMPLETE | 
 
 
 
 
 | 539 | }; | 
 
 
 
 
 | 540 |  | 
 
 
 
 
 | 541 | #define _NTMS_OPREQUESTINFORMATION __MINGW_NAME_AW(_NTMS_OPREQUESTINFORMATION) | 
 
 
 
 
 | 542 | #define NTMS_OPREQUESTINFORMATION __MINGW_NAME_AW(NTMS_OPREQUESTINFORMATION) | 
 
 
 
 
 | 543 |  | 
 
 
 
 
 | 544 | typedef struct _NTMS_OPREQUESTINFORMATIONA { | 
 
 
 
 
 | 545 | DWORD Request; | 
 
 
 
 
 | 546 | SYSTEMTIME Submitted; | 
 
 
 
 
 | 547 | DWORD State; | 
 
 
 
 
 | 548 | CHAR szMessage[NTMS_MESSAGE_LENGTH]; | 
 
 
 
 
 | 549 | DWORD Arg1Type; | 
 
 
 
 
 | 550 | NTMS_GUID Arg1; | 
 
 
 
 
 | 551 | DWORD Arg2Type; | 
 
 
 
 
 | 552 | NTMS_GUID Arg2; | 
 
 
 
 
 | 553 | CHAR szApplication[NTMS_APPLICATIONNAME_LENGTH]; | 
 
 
 
 
 | 554 | CHAR szUser[NTMS_USERNAME_LENGTH]; | 
 
 
 
 
 | 555 | CHAR szComputer[NTMS_COMPUTERNAME_LENGTH]; | 
 
 
 
 
 | 556 | } NTMS_OPREQUESTINFORMATIONA; | 
 
 
 
 
 | 557 |  | 
 
 
 
 
 | 558 | typedef struct _NTMS_OPREQUESTINFORMATIONW { | 
 
 
 
 
 | 559 | DWORD Request; | 
 
 
 
 
 | 560 | SYSTEMTIME Submitted; | 
 
 
 
 
 | 561 | DWORD State; | 
 
 
 
 
 | 562 | WCHAR szMessage[NTMS_MESSAGE_LENGTH]; | 
 
 
 
 
 | 563 | DWORD Arg1Type; | 
 
 
 
 
 | 564 | NTMS_GUID Arg1; | 
 
 
 
 
 | 565 | DWORD Arg2Type; | 
 
 
 
 
 | 566 | NTMS_GUID Arg2; | 
 
 
 
 
 | 567 | WCHAR szApplication[NTMS_APPLICATIONNAME_LENGTH]; | 
 
 
 
 
 | 568 | WCHAR szUser[NTMS_USERNAME_LENGTH]; | 
 
 
 
 
 | 569 | WCHAR szComputer[NTMS_COMPUTERNAME_LENGTH]; | 
 
 
 
 
 | 570 | } NTMS_OPREQUESTINFORMATIONW; | 
 
 
 
 
 | 571 |  | 
 
 
 
 
 | 572 | typedef struct _NTMS_COMPUTERINFORMATION { | 
 
 
 
 
 | 573 | DWORD dwLibRequestPurgeTime; | 
 
 
 
 
 | 574 | DWORD dwOpRequestPurgeTime; | 
 
 
 
 
 | 575 | DWORD dwLibRequestFlags; | 
 
 
 
 
 | 576 | DWORD dwOpRequestFlags; | 
 
 
 
 
 | 577 | DWORD dwMediaPoolPolicy; | 
 
 
 
 
 | 578 | } NTMS_COMPUTERINFORMATION; | 
 
 
 
 
 | 579 |  | 
 
 
 
 
 | 580 | enum NtmsLibRequestFlags { | 
 
 
 
 
 | 581 | NTMS_LIBREQFLAGS_NOAUTOPURGE = 0x01,NTMS_LIBREQFLAGS_NOFAILEDPURGE = 0x02 | 
 
 
 
 
 | 582 | }; | 
 
 
 
 
 | 583 |  | 
 
 
 
 
 | 584 | enum NtmsOpRequestFlags { | 
 
 
 
 
 | 585 | NTMS_OPREQFLAGS_NOAUTOPURGE = 0x01,NTMS_OPREQFLAGS_NOFAILEDPURGE = 0x02,NTMS_OPREQFLAGS_NOALERTS = 0x10,NTMS_OPREQFLAGS_NOTRAYICON = 0x20 | 
 
 
 
 
 | 586 | }; | 
 
 
 
 
 | 587 |  | 
 
 
 
 
 | 588 | enum NtmsMediaPoolPolicy { | 
 
 
 
 
 | 589 | NTMS_POOLPOLICY_PURGEOFFLINESCRATCH = 0x01,NTMS_POOLPOLICY_KEEPOFFLINEIMPORT = 0x02 | 
 
 
 
 
 | 590 | }; | 
 
 
 
 
 | 591 |  | 
 
 
 
 
 | 592 | #define _NTMS_OBJECTINFORMATION __MINGW_NAME_AW(_NTMS_OBJECTINFORMATION) | 
 
 
 
 
 | 593 | #define NTMS_OBJECTINFORMATION __MINGW_NAME_AW(NTMS_OBJECTINFORMATION) | 
 
 
 
 
 | 594 | #define LPNTMS_OBJECTINFORMATION __MINGW_NAME_AW(LPNTMS_OBJECTINFORMATION) | 
 
 
 
 
 | 595 |  | 
 
 
 
 
 | 596 | enum NtmsOperationalState { | 
 
 
 
 
 | 597 | NTMS_READY = 0, | 
 
 
 
 
 | 598 | NTMS_INITIALIZING = 10, | 
 
 
 
 
 | 599 | NTMS_NEEDS_SERVICE = 20, | 
 
 
 
 
 | 600 | NTMS_NOT_PRESENT = 21 | 
 
 
 
 
 | 601 | }; | 
 
 
 
 
 | 602 |  | 
 
 
 
 
 | 603 | typedef struct _RSM_MESSAGE { | 
 
 
 
 
 | 604 | LPGUID lpguidOperation; | 
 
 
 
 
 | 605 | DWORD dwNtmsType; | 
 
 
 
 
 | 606 | DWORD dwState; | 
 
 
 
 
 | 607 | DWORD dwFlags; | 
 
 
 
 
 | 608 | DWORD dwPriority; | 
 
 
 
 
 | 609 | DWORD dwErrorCode; | 
 
 
 
 
 | 610 | LPWSTR lpszComputerName; | 
 
 
 
 
 | 611 | LPWSTR lpszApplication; | 
 
 
 
 
 | 612 | LPWSTR lpszUser; | 
 
 
 
 
 | 613 | LPWSTR lpszTimeSubmitted; | 
 
 
 
 
 | 614 | LPWSTR lpszMessage; | 
 
 
 
 
 | 615 | } RSM_MESSAGE, *LPRSM_MESSAGE; | 
 
 
 
 
 | 616 |  | 
 
 
 
 
 | 617 | typedef struct _NTMS_OBJECTINFORMATIONA { | 
 
 
 
 
 | 618 | DWORD dwSize; | 
 
 
 
 
 | 619 | DWORD dwType; | 
 
 
 
 
 | 620 | SYSTEMTIME Created; | 
 
 
 
 
 | 621 | SYSTEMTIME Modified; | 
 
 
 
 
 | 622 | NTMS_GUID ObjectGuid; | 
 
 
 
 
 | 623 | WINBOOL Enabled; | 
 
 
 
 
 | 624 | DWORD dwOperationalState; | 
 
 
 
 
 | 625 | CHAR szName[NTMS_OBJECTNAME_LENGTH]; | 
 
 
 
 
 | 626 | CHAR szDescription[NTMS_DESCRIPTION_LENGTH]; | 
 
 
 
 
 | 627 | union { | 
 
 
 
 
 | 628 | NTMS_DRIVEINFORMATIONA Drive; | 
 
 
 
 
 | 629 | NTMS_DRIVETYPEINFORMATIONA DriveType; | 
 
 
 
 
 | 630 | NTMS_LIBRARYINFORMATION Library; | 
 
 
 
 
 | 631 | NTMS_CHANGERINFORMATIONA Changer; | 
 
 
 
 
 | 632 | NTMS_CHANGERTYPEINFORMATIONA ChangerType; | 
 
 
 
 
 | 633 | NTMS_STORAGESLOTINFORMATION StorageSlot; | 
 
 
 
 
 | 634 | NTMS_IEDOORINFORMATION IEDoor; | 
 
 
 
 
 | 635 | NTMS_IEPORTINFORMATION IEPort; | 
 
 
 
 
 | 636 | NTMS_PMIDINFORMATIONA PhysicalMedia; | 
 
 
 
 
 | 637 | NTMS_LMIDINFORMATION LogicalMedia; | 
 
 
 
 
 | 638 | NTMS_PARTITIONINFORMATIONA Partition; | 
 
 
 
 
 | 639 | NTMS_MEDIAPOOLINFORMATION MediaPool; | 
 
 
 
 
 | 640 | NTMS_MEDIATYPEINFORMATION MediaType; | 
 
 
 
 
 | 641 | NTMS_LIBREQUESTINFORMATIONA LibRequest; | 
 
 
 
 
 | 642 | NTMS_OPREQUESTINFORMATIONA OpRequest; | 
 
 
 
 
 | 643 | NTMS_COMPUTERINFORMATION Computer; | 
 
 
 
 
 | 644 | } Info; | 
 
 
 
 
 | 645 | } NTMS_OBJECTINFORMATIONA,*LPNTMS_OBJECTINFORMATIONA; | 
 
 
 
 
 | 646 |  | 
 
 
 
 
 | 647 | typedef struct _NTMS_OBJECTINFORMATIONW { | 
 
 
 
 
 | 648 | DWORD dwSize; | 
 
 
 
 
 | 649 | DWORD dwType; | 
 
 
 
 
 | 650 | SYSTEMTIME Created; | 
 
 
 
 
 | 651 | SYSTEMTIME Modified; | 
 
 
 
 
 | 652 | NTMS_GUID ObjectGuid; | 
 
 
 
 
 | 653 | WINBOOL Enabled; | 
 
 
 
 
 | 654 | DWORD dwOperationalState; | 
 
 
 
 
 | 655 | WCHAR szName[NTMS_OBJECTNAME_LENGTH]; | 
 
 
 
 
 | 656 | WCHAR szDescription[NTMS_DESCRIPTION_LENGTH]; | 
 
 
 
 
 | 657 | union { | 
 
 
 
 
 | 658 | NTMS_DRIVEINFORMATIONW Drive; | 
 
 
 
 
 | 659 | NTMS_DRIVETYPEINFORMATIONW DriveType; | 
 
 
 
 
 | 660 | NTMS_LIBRARYINFORMATION Library; | 
 
 
 
 
 | 661 | NTMS_CHANGERINFORMATIONW Changer; | 
 
 
 
 
 | 662 | NTMS_CHANGERTYPEINFORMATIONW ChangerType; | 
 
 
 
 
 | 663 | NTMS_STORAGESLOTINFORMATION StorageSlot; | 
 
 
 
 
 | 664 | NTMS_IEDOORINFORMATION IEDoor; | 
 
 
 
 
 | 665 | NTMS_IEPORTINFORMATION IEPort; | 
 
 
 
 
 | 666 | NTMS_PMIDINFORMATIONW PhysicalMedia; | 
 
 
 
 
 | 667 | NTMS_LMIDINFORMATION LogicalMedia; | 
 
 
 
 
 | 668 | NTMS_PARTITIONINFORMATIONW Partition; | 
 
 
 
 
 | 669 | NTMS_MEDIAPOOLINFORMATION MediaPool; | 
 
 
 
 
 | 670 | NTMS_MEDIATYPEINFORMATION MediaType; | 
 
 
 
 
 | 671 | NTMS_LIBREQUESTINFORMATIONW LibRequest; | 
 
 
 
 
 | 672 | NTMS_OPREQUESTINFORMATIONW OpRequest; | 
 
 
 
 
 | 673 | NTMS_COMPUTERINFORMATION Computer; | 
 
 
 
 
 | 674 | } Info; | 
 
 
 
 
 | 675 | } NTMS_OBJECTINFORMATIONW,*LPNTMS_OBJECTINFORMATIONW; | 
 
 
 
 
 | 676 |  | 
 
 
 
 
 | 677 | #define NTMS_I1_LIBREQUESTINFORMATION __MINGW_NAME_AW(NTMS_I1_LIBREQUESTINFORMATION) | 
 
 
 
 
 | 678 | #define NTMS_I1_PARTITIONINFORMATION __MINGW_NAME_AW(NTMS_I1_PARTITIONINFORMATION) | 
 
 
 
 
 | 679 | #define NTMS_I1_PMIDINFORMATION __MINGW_NAME_AW(NTMS_I1_PMIDINFORMATION) | 
 
 
 
 
 | 680 | #define NTMS_I1_OPREQUESTINFORMATION __MINGW_NAME_AW(NTMS_I1_OPREQUESTINFORMATION) | 
 
 
 
 
 | 681 | #define NTMS_I1_OBJECTINFORMATION __MINGW_NAME_AW(NTMS_I1_OBJECTINFORMATION) | 
 
 
 
 
 | 682 |  | 
 
 
 
 
 | 683 | typedef struct _NTMS_I1_LIBRARYINFORMATION { | 
 
 
 
 
 | 684 | DWORD LibraryType; | 
 
 
 
 
 | 685 | NTMS_GUID CleanerSlot; | 
 
 
 
 
 | 686 | NTMS_GUID CleanerSlotDefault; | 
 
 
 
 
 | 687 | WINBOOL LibrarySupportsDriveCleaning; | 
 
 
 
 
 | 688 | WINBOOL BarCodeReaderInstalled; | 
 
 
 
 
 | 689 | DWORD InventoryMethod; | 
 
 
 
 
 | 690 | DWORD dwCleanerUsesRemaining; | 
 
 
 
 
 | 691 | DWORD FirstDriveNumber; | 
 
 
 
 
 | 692 | DWORD dwNumberOfDrives; | 
 
 
 
 
 | 693 | DWORD FirstSlotNumber; | 
 
 
 
 
 | 694 | DWORD dwNumberOfSlots; | 
 
 
 
 
 | 695 | DWORD FirstDoorNumber; | 
 
 
 
 
 | 696 | DWORD dwNumberOfDoors; | 
 
 
 
 
 | 697 | DWORD FirstPortNumber; | 
 
 
 
 
 | 698 | DWORD dwNumberOfPorts; | 
 
 
 
 
 | 699 | DWORD FirstChangerNumber; | 
 
 
 
 
 | 700 | DWORD dwNumberOfChangers; | 
 
 
 
 
 | 701 | DWORD dwNumberOfMedia; | 
 
 
 
 
 | 702 | DWORD dwNumberOfMediaTypes; | 
 
 
 
 
 | 703 | DWORD dwNumberOfLibRequests; | 
 
 
 
 
 | 704 | GUID Reserved; | 
 
 
 
 
 | 705 | } NTMS_I1_LIBRARYINFORMATION; | 
 
 
 
 
 | 706 |  | 
 
 
 
 
 | 707 | typedef struct _NTMS_I1_LIBREQUESTINFORMATIONA { | 
 
 
 
 
 | 708 | DWORD OperationCode; | 
 
 
 
 
 | 709 | DWORD OperationOption; | 
 
 
 
 
 | 710 | DWORD State; | 
 
 
 
 
 | 711 | NTMS_GUID PartitionId; | 
 
 
 
 
 | 712 | NTMS_GUID DriveId; | 
 
 
 
 
 | 713 | NTMS_GUID PhysMediaId; | 
 
 
 
 
 | 714 | NTMS_GUID Library; | 
 
 
 
 
 | 715 | NTMS_GUID SlotId; | 
 
 
 
 
 | 716 | SYSTEMTIME TimeQueued; | 
 
 
 
 
 | 717 | SYSTEMTIME TimeCompleted; | 
 
 
 
 
 | 718 | CHAR szApplication[NTMS_APPLICATIONNAME_LENGTH]; | 
 
 
 
 
 | 719 | CHAR szUser[NTMS_USERNAME_LENGTH]; | 
 
 
 
 
 | 720 | CHAR szComputer[NTMS_COMPUTERNAME_LENGTH]; | 
 
 
 
 
 | 721 | } NTMS_I1_LIBREQUESTINFORMATIONA; | 
 
 
 
 
 | 722 |  | 
 
 
 
 
 | 723 | typedef struct _NTMS_I1_LIBREQUESTINFORMATIONW { | 
 
 
 
 
 | 724 | DWORD OperationCode; | 
 
 
 
 
 | 725 | DWORD OperationOption; | 
 
 
 
 
 | 726 | DWORD State; | 
 
 
 
 
 | 727 | NTMS_GUID PartitionId; | 
 
 
 
 
 | 728 | NTMS_GUID DriveId; | 
 
 
 
 
 | 729 | NTMS_GUID PhysMediaId; | 
 
 
 
 
 | 730 | NTMS_GUID Library; | 
 
 
 
 
 | 731 | NTMS_GUID SlotId; | 
 
 
 
 
 | 732 | SYSTEMTIME TimeQueued; | 
 
 
 
 
 | 733 | SYSTEMTIME TimeCompleted; | 
 
 
 
 
 | 734 | WCHAR szApplication[NTMS_APPLICATIONNAME_LENGTH]; | 
 
 
 
 
 | 735 | WCHAR szUser[NTMS_USERNAME_LENGTH]; | 
 
 
 
 
 | 736 | WCHAR szComputer[NTMS_COMPUTERNAME_LENGTH]; | 
 
 
 
 
 | 737 | } NTMS_I1_LIBREQUESTINFORMATIONW; | 
 
 
 
 
 | 738 |  | 
 
 
 
 
 | 739 | typedef struct _NTMS_I1_PMIDINFORMATIONA { | 
 
 
 
 
 | 740 | NTMS_GUID CurrentLibrary; | 
 
 
 
 
 | 741 | NTMS_GUID MediaPool; | 
 
 
 
 
 | 742 | NTMS_GUID Location; | 
 
 
 
 
 | 743 | DWORD LocationType; | 
 
 
 
 
 | 744 | NTMS_GUID MediaType; | 
 
 
 
 
 | 745 | NTMS_GUID HomeSlot; | 
 
 
 
 
 | 746 | CHAR szBarCode[NTMS_BARCODE_LENGTH]; | 
 
 
 
 
 | 747 | DWORD BarCodeState; | 
 
 
 
 
 | 748 | CHAR szSequenceNumber[NTMS_SEQUENCE_LENGTH]; | 
 
 
 
 
 | 749 | DWORD MediaState; | 
 
 
 
 
 | 750 | DWORD dwNumberOfPartitions; | 
 
 
 
 
 | 751 | } NTMS_I1_PMIDINFORMATIONA; | 
 
 
 
 
 | 752 |  | 
 
 
 
 
 | 753 | typedef struct _NTMS_I1_PMIDINFORMATIONW { | 
 
 
 
 
 | 754 | NTMS_GUID CurrentLibrary; | 
 
 
 
 
 | 755 | NTMS_GUID MediaPool; | 
 
 
 
 
 | 756 | NTMS_GUID Location; | 
 
 
 
 
 | 757 | DWORD LocationType; | 
 
 
 
 
 | 758 | NTMS_GUID MediaType; | 
 
 
 
 
 | 759 | NTMS_GUID HomeSlot; | 
 
 
 
 
 | 760 | WCHAR szBarCode[NTMS_BARCODE_LENGTH]; | 
 
 
 
 
 | 761 | DWORD BarCodeState; | 
 
 
 
 
 | 762 | WCHAR szSequenceNumber[NTMS_SEQUENCE_LENGTH]; | 
 
 
 
 
 | 763 | DWORD MediaState; | 
 
 
 
 
 | 764 | DWORD dwNumberOfPartitions; | 
 
 
 
 
 | 765 | } NTMS_I1_PMIDINFORMATIONW; | 
 
 
 
 
 | 766 |  | 
 
 
 
 
 | 767 | typedef struct _NTMS_I1_PARTITIONINFORMATIONA { | 
 
 
 
 
 | 768 | NTMS_GUID PhysicalMedia; | 
 
 
 
 
 | 769 | NTMS_GUID LogicalMedia; | 
 
 
 
 
 | 770 | DWORD State; | 
 
 
 
 
 | 771 | WORD Side; | 
 
 
 
 
 | 772 | DWORD dwOmidLabelIdLength; | 
 
 
 
 
 | 773 | BYTE OmidLabelId[255]; | 
 
 
 
 
 | 774 | CHAR szOmidLabelType[64]; | 
 
 
 
 
 | 775 | CHAR szOmidLabelInfo[256]; | 
 
 
 
 
 | 776 | DWORD dwMountCount; | 
 
 
 
 
 | 777 | DWORD dwAllocateCount; | 
 
 
 
 
 | 778 | } NTMS_I1_PARTITIONINFORMATIONA; | 
 
 
 
 
 | 779 |  | 
 
 
 
 
 | 780 | typedef struct _NTMS_I1_PARTITIONINFORMATIONW { | 
 
 
 
 
 | 781 | NTMS_GUID PhysicalMedia; | 
 
 
 
 
 | 782 | NTMS_GUID LogicalMedia; | 
 
 
 
 
 | 783 | DWORD State; | 
 
 
 
 
 | 784 | WORD Side; | 
 
 
 
 
 | 785 | DWORD dwOmidLabelIdLength; | 
 
 
 
 
 | 786 | BYTE OmidLabelId[255]; | 
 
 
 
 
 | 787 | WCHAR szOmidLabelType[64]; | 
 
 
 
 
 | 788 | WCHAR szOmidLabelInfo[256]; | 
 
 
 
 
 | 789 | DWORD dwMountCount; | 
 
 
 
 
 | 790 | DWORD dwAllocateCount; | 
 
 
 
 
 | 791 | } NTMS_I1_PARTITIONINFORMATIONW; | 
 
 
 
 
 | 792 |  | 
 
 
 
 
 | 793 | typedef struct _NTMS_I1_OPREQUESTINFORMATIONA { | 
 
 
 
 
 | 794 | DWORD Request; | 
 
 
 
 
 | 795 | SYSTEMTIME Submitted; | 
 
 
 
 
 | 796 | DWORD State; | 
 
 
 
 
 | 797 | CHAR szMessage[NTMS_I1_MESSAGE_LENGTH]; | 
 
 
 
 
 | 798 | DWORD Arg1Type; | 
 
 
 
 
 | 799 | NTMS_GUID Arg1; | 
 
 
 
 
 | 800 | DWORD Arg2Type; | 
 
 
 
 
 | 801 | NTMS_GUID Arg2; | 
 
 
 
 
 | 802 | CHAR szApplication[NTMS_APPLICATIONNAME_LENGTH]; | 
 
 
 
 
 | 803 | CHAR szUser[NTMS_USERNAME_LENGTH]; | 
 
 
 
 
 | 804 | CHAR szComputer[NTMS_COMPUTERNAME_LENGTH]; | 
 
 
 
 
 | 805 | } NTMS_I1_OPREQUESTINFORMATIONA; | 
 
 
 
 
 | 806 |  | 
 
 
 
 
 | 807 | typedef struct _NTMS_I1_OPREQUESTINFORMATIONW { | 
 
 
 
 
 | 808 | DWORD Request; | 
 
 
 
 
 | 809 | SYSTEMTIME Submitted; | 
 
 
 
 
 | 810 | DWORD State; | 
 
 
 
 
 | 811 | WCHAR szMessage[NTMS_I1_MESSAGE_LENGTH]; | 
 
 
 
 
 | 812 | DWORD Arg1Type; | 
 
 
 
 
 | 813 | NTMS_GUID Arg1; | 
 
 
 
 
 | 814 | DWORD Arg2Type; | 
 
 
 
 
 | 815 | NTMS_GUID Arg2; | 
 
 
 
 
 | 816 | WCHAR szApplication[NTMS_APPLICATIONNAME_LENGTH]; | 
 
 
 
 
 | 817 | WCHAR szUser[NTMS_USERNAME_LENGTH]; | 
 
 
 
 
 | 818 | WCHAR szComputer[NTMS_COMPUTERNAME_LENGTH]; | 
 
 
 
 
 | 819 | } NTMS_I1_OPREQUESTINFORMATIONW; | 
 
 
 
 
 | 820 |  | 
 
 
 
 
 | 821 | typedef struct _NTMS_I1_OBJECTINFORMATIONA { | 
 
 
 
 
 | 822 | DWORD dwSize; | 
 
 
 
 
 | 823 | DWORD dwType; | 
 
 
 
 
 | 824 | SYSTEMTIME Created; | 
 
 
 
 
 | 825 | SYSTEMTIME Modified; | 
 
 
 
 
 | 826 | NTMS_GUID ObjectGuid; | 
 
 
 
 
 | 827 | WINBOOL Enabled; | 
 
 
 
 
 | 828 | DWORD dwOperationalState; | 
 
 
 
 
 | 829 | CHAR szName[NTMS_OBJECTNAME_LENGTH]; | 
 
 
 
 
 | 830 | CHAR szDescription[NTMS_DESCRIPTION_LENGTH]; | 
 
 
 
 
 | 831 | union { | 
 
 
 
 
 | 832 | NTMS_DRIVEINFORMATIONA Drive; | 
 
 
 
 
 | 833 | NTMS_DRIVETYPEINFORMATIONA DriveType; | 
 
 
 
 
 | 834 | NTMS_I1_LIBRARYINFORMATION Library; | 
 
 
 
 
 | 835 | NTMS_CHANGERINFORMATIONA Changer; | 
 
 
 
 
 | 836 | NTMS_CHANGERTYPEINFORMATIONA ChangerType; | 
 
 
 
 
 | 837 | NTMS_STORAGESLOTINFORMATION StorageSlot; | 
 
 
 
 
 | 838 | NTMS_IEDOORINFORMATION IEDoor; | 
 
 
 
 
 | 839 | NTMS_IEPORTINFORMATION IEPort; | 
 
 
 
 
 | 840 | NTMS_I1_PMIDINFORMATIONA PhysicalMedia; | 
 
 
 
 
 | 841 | NTMS_LMIDINFORMATION LogicalMedia; | 
 
 
 
 
 | 842 | NTMS_I1_PARTITIONINFORMATIONA Partition; | 
 
 
 
 
 | 843 | NTMS_MEDIAPOOLINFORMATION MediaPool; | 
 
 
 
 
 | 844 | NTMS_MEDIATYPEINFORMATION MediaType; | 
 
 
 
 
 | 845 | NTMS_I1_LIBREQUESTINFORMATIONA LibRequest; | 
 
 
 
 
 | 846 | NTMS_I1_OPREQUESTINFORMATIONA OpRequest; | 
 
 
 
 
 | 847 | } Info; | 
 
 
 
 
 | 848 | } NTMS_I1_OBJECTINFORMATIONA,*LPNTMS_I1_OBJECTINFORMATIONA; | 
 
 
 
 
 | 849 |  | 
 
 
 
 
 | 850 | typedef struct _NTMS_I1_OBJECTINFORMATIONW { | 
 
 
 
 
 | 851 | DWORD dwSize; | 
 
 
 
 
 | 852 | DWORD dwType; | 
 
 
 
 
 | 853 | SYSTEMTIME Created; | 
 
 
 
 
 | 854 | SYSTEMTIME Modified; | 
 
 
 
 
 | 855 | NTMS_GUID ObjectGuid; | 
 
 
 
 
 | 856 | WINBOOL Enabled; | 
 
 
 
 
 | 857 | DWORD dwOperationalState; | 
 
 
 
 
 | 858 | WCHAR szName[NTMS_OBJECTNAME_LENGTH]; | 
 
 
 
 
 | 859 | WCHAR szDescription[NTMS_DESCRIPTION_LENGTH]; | 
 
 
 
 
 | 860 | union { | 
 
 
 
 
 | 861 | NTMS_DRIVEINFORMATIONW Drive; | 
 
 
 
 
 | 862 | NTMS_DRIVETYPEINFORMATIONW DriveType; | 
 
 
 
 
 | 863 | NTMS_I1_LIBRARYINFORMATION Library; | 
 
 
 
 
 | 864 | NTMS_CHANGERINFORMATIONW Changer; | 
 
 
 
 
 | 865 | NTMS_CHANGERTYPEINFORMATIONW ChangerType; | 
 
 
 
 
 | 866 | NTMS_STORAGESLOTINFORMATION StorageSlot; | 
 
 
 
 
 | 867 | NTMS_IEDOORINFORMATION IEDoor; | 
 
 
 
 
 | 868 | NTMS_IEPORTINFORMATION IEPort; | 
 
 
 
 
 | 869 | NTMS_I1_PMIDINFORMATIONW PhysicalMedia; | 
 
 
 
 
 | 870 | NTMS_LMIDINFORMATION LogicalMedia; | 
 
 
 
 
 | 871 | NTMS_I1_PARTITIONINFORMATIONW Partition; | 
 
 
 
 
 | 872 | NTMS_MEDIAPOOLINFORMATION MediaPool; | 
 
 
 
 
 | 873 | NTMS_MEDIATYPEINFORMATION MediaType; | 
 
 
 
 
 | 874 | NTMS_I1_LIBREQUESTINFORMATIONW LibRequest; | 
 
 
 
 
 | 875 | NTMS_I1_OPREQUESTINFORMATIONW OpRequest; | 
 
 
 
 
 | 876 | } Info; | 
 
 
 
 
 | 877 | } NTMS_I1_OBJECTINFORMATIONW,*LPNTMS_I1_OBJECTINFORMATIONW; | 
 
 
 
 
 | 878 | #endif | 
 
 
 
 
 | 879 |  | 
 
 
 
 
 | 880 | #ifndef NTMS_NOREDEF | 
 
 
 
 
 | 881 |  | 
 
 
 
 
 | 882 | enum NtmsCreateNtmsMediaOptions { | 
 
 
 
 
 | 883 | NTMS_ERROR_ON_DUPLICATE = 0x0001 | 
 
 
 
 
 | 884 | }; | 
 
 
 
 
 | 885 | #endif | 
 
 
 
 
 | 886 |  | 
 
 
 
 
 | 887 | #ifdef PRE_SEVIL | 
 
 
 
 
 | 888 | DWORD WINAPI GetNtmsObjectInformation(HANDLE hSession,LPNTMS_GUID lpObjectId,LPNTMS_OBJECTINFORMATION lpInfo); | 
 
 
 
 
 | 889 | DWORD WINAPI SetNtmsObjectInformation(HANDLE hSession,LPNTMS_GUID lpObjectId,LPNTMS_OBJECTINFORMATION lpInfo); | 
 
 
 
 
 | 890 | #endif | 
 
 
 
 
 | 891 | DWORD WINAPI GetNtmsObjectInformationA(HANDLE hSession,LPNTMS_GUID lpObjectId,LPNTMS_OBJECTINFORMATIONA lpInfo); | 
 
 
 
 
 | 892 | DWORD WINAPI GetNtmsObjectInformationW(HANDLE hSession,LPNTMS_GUID lpObjectId,LPNTMS_OBJECTINFORMATIONW lpInfo); | 
 
 
 
 
 | 893 | DWORD WINAPI SetNtmsObjectInformationA(HANDLE hSession,LPNTMS_GUID lpObjectId,LPNTMS_OBJECTINFORMATIONA lpInfo); | 
 
 
 
 
 | 894 | DWORD WINAPI SetNtmsObjectInformationW(HANDLE hSession,LPNTMS_GUID lpObjectId,LPNTMS_OBJECTINFORMATIONW lpInfo); | 
 
 
 
 
 | 895 | DWORD WINAPI CreateNtmsMediaA(HANDLE hSession,LPNTMS_OBJECTINFORMATIONA lpMedia,LPNTMS_OBJECTINFORMATIONA lpList,DWORD dwOptions); | 
 
 
 
 
 | 896 | DWORD WINAPI CreateNtmsMediaW(HANDLE hSession,LPNTMS_OBJECTINFORMATIONW lpMedia,LPNTMS_OBJECTINFORMATIONW lpList,DWORD dwOptions); | 
 
 
 
 
 | 897 | enum NtmsEnumerateOption { | 
 
 
 
 
 | 898 | NTMS_ENUM_DEFAULT = 0,NTMS_ENUM_ROOTPOOL = 1 | 
 
 
 
 
 | 899 | }; | 
 
 
 
 
 | 900 | DWORD WINAPI EnumerateNtmsObject(HANDLE hSession,const LPNTMS_GUID lpContainerId,LPNTMS_GUID lpList,LPDWORD lpdwListSize,DWORD dwType,DWORD dwOptions); | 
 
 
 
 
 | 901 | DWORD WINAPI DisableNtmsObject(HANDLE hSession,DWORD dwType,LPNTMS_GUID lpObjectId); | 
 
 
 
 
 | 902 | DWORD WINAPI EnableNtmsObject(HANDLE hSession,DWORD dwType,LPNTMS_GUID lpObjectId); | 
 
 
 
 
 | 903 | enum NtmsEjectOperation { | 
 
 
 
 
 | 904 | NTMS_EJECT_START = 0,NTMS_EJECT_STOP = 1,NTMS_EJECT_QUEUE = 2,NTMS_EJECT_FORCE = 3,NTMS_EJECT_IMMEDIATE = 4,NTMS_EJECT_ASK_USER = 5 | 
 
 
 
 
 | 905 | }; | 
 
 
 
 
 | 906 | DWORD WINAPI EjectNtmsMedia(HANDLE hSession,LPNTMS_GUID lpMediaId,LPNTMS_GUID lpEjectOperation,DWORD dwAction); | 
 
 
 
 
 | 907 | enum NtmsInjectOperation { | 
 
 
 
 
 | 908 | NTMS_INJECT_START = 0,NTMS_INJECT_STOP = 1,NTMS_INJECT_RETRACT = 2,NTMS_INJECT_STARTMANY = 3 | 
 
 
 
 
 | 909 | }; | 
 
 
 
 
 | 910 | DWORD WINAPI InjectNtmsMedia(HANDLE hSession,LPNTMS_GUID lpLibraryId,LPNTMS_GUID lpInjectOperation,DWORD dwAction); | 
 
 
 
 
 | 911 | DWORD WINAPI AccessNtmsLibraryDoor(HANDLE hSession,LPNTMS_GUID lpLibraryId,DWORD dwAction); | 
 
 
 
 
 | 912 | DWORD WINAPI CleanNtmsDrive(HANDLE hSession,LPNTMS_GUID lpDriveId); | 
 
 
 
 
 | 913 | DWORD WINAPI DismountNtmsDrive(HANDLE hSession,LPNTMS_GUID lpDriveId); | 
 
 
 
 
 | 914 | DWORD WINAPI InventoryNtmsLibrary(HANDLE hSession,LPNTMS_GUID lpLibraryId,DWORD dwAction); | 
 
 
 
 
 | 915 | DWORD WINAPI IdentifyNtmsSlot(HANDLE hSession,LPNTMS_GUID lpSlotId,DWORD dwOption); | 
 
 
 
 
 | 916 |  | 
 
 
 
 
 | 917 | #define NTMS_OMID_TYPE_RAW_LABEL 0x01 | 
 
 
 
 
 | 918 | #define NTMS_OMID_TYPE_FILESYSTEM_INFO 0x02 | 
 
 
 
 
 | 919 |  | 
 
 
 
 
 | 920 | typedef struct { | 
 
 
 
 
 | 921 | WCHAR FileSystemType[64]; | 
 
 
 
 
 | 922 | WCHAR VolumeName[256]; | 
 
 
 
 
 | 923 | DWORD SerialNumber; | 
 
 
 
 
 | 924 | } NTMS_FILESYSTEM_INFO; | 
 
 
 
 
 | 925 |  | 
 
 
 
 
 | 926 | DWORD WINAPI UpdateNtmsOmidInfo(HANDLE hSession,LPNTMS_GUID lpMediaId,DWORD labelType,DWORD numberOfBytes,LPVOID lpBuffer); | 
 
 
 
 
 | 927 | DWORD WINAPI CancelNtmsLibraryRequest(HANDLE hSession,LPNTMS_GUID lpRequestId); | 
 
 
 
 
 | 928 | DWORD WINAPI GetNtmsRequestOrder(HANDLE hSession,LPNTMS_GUID lpRequestId,LPDWORD lpdwOrderNumber); | 
 
 
 
 
 | 929 | DWORD WINAPI SetNtmsRequestOrder(HANDLE hSession,LPNTMS_GUID lpRequestId,DWORD dwOrderNumber); | 
 
 
 
 
 | 930 | DWORD WINAPI DeleteNtmsRequests(HANDLE hSession,LPNTMS_GUID lpRequestId,DWORD dwType,DWORD dwCount); | 
 
 
 
 
 | 931 | DWORD WINAPI ReserveNtmsCleanerSlot (HANDLE hSession,LPNTMS_GUID lpLibrary,LPNTMS_GUID lpSlot); | 
 
 
 
 
 | 932 | DWORD WINAPI ReleaseNtmsCleanerSlot (HANDLE hSession,LPNTMS_GUID lpLibrary); | 
 
 
 
 
 | 933 | DWORD WINAPI InjectNtmsCleaner (HANDLE hSession,LPNTMS_GUID lpLibrary,LPNTMS_GUID lpInjectOperation,DWORD dwNumberOfCleansLeft,DWORD dwAction); | 
 
 
 
 
 | 934 | DWORD WINAPI EjectNtmsCleaner (HANDLE hSession,LPNTMS_GUID lpLibrary,LPNTMS_GUID lpEjectOperation,DWORD dwAction); | 
 
 
 
 
 | 935 | DWORD WINAPI BeginNtmsDeviceChangeDetection(HANDLE hSession,LPHANDLE lpDetectHandle); | 
 
 
 
 
 | 936 | DWORD WINAPI SetNtmsDeviceChangeDetection(HANDLE hSession,HANDLE DetectHandle,LPNTMS_GUID lpRequestId,DWORD dwType,DWORD dwCount); | 
 
 
 
 
 | 937 | DWORD WINAPI EndNtmsDeviceChangeDetection(HANDLE hSession,HANDLE DetectHandle); | 
 
 
 
 
 | 938 |  | 
 
 
 
 
 | 939 | #ifndef NTMS_NOREDEF | 
 
 
 
 
 | 940 | enum NtmsDriveType { | 
 
 
 
 
 | 941 | NTMS_UNKNOWN_DRIVE = 0 | 
 
 
 
 
 | 942 | }; | 
 
 
 
 
 | 943 | #endif | 
 
 
 
 
 | 944 |  | 
 
 
 
 
 | 945 | DWORD WINAPI GetNtmsObjectSecurity(HANDLE hSession,LPNTMS_GUID lpObjectId,DWORD dwType,SECURITY_INFORMATION RequestedInformation,PSECURITY_DESCRIPTOR lpSecurityDescriptor,DWORD nLength,LPDWORD lpnLengthNeeded); | 
 
 
 
 
 | 946 | DWORD WINAPI SetNtmsObjectSecurity(HANDLE hSession,LPNTMS_GUID lpObjectId,DWORD dwType,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR lpSecurityDescriptor); | 
 
 
 
 
 | 947 | enum NtmsAccessMask { | 
 
 
 
 
 | 948 | NTMS_USE_ACCESS = 0x1, | 
 
 
 
 
 | 949 | NTMS_MODIFY_ACCESS = 0x2, | 
 
 
 
 
 | 950 | NTMS_CONTROL_ACCESS = 0x4 /* Hmm, could be 3, too. */ | 
 
 
 
 
 | 951 | }; | 
 
 
 
 
 | 952 |  | 
 
 
 
 
 | 953 | #define NTMS_GENERIC_READ NTMS_USE_ACCESS | 
 
 
 
 
 | 954 | #define NTMS_GENERIC_WRITE NTMS_USE_ACCESS | NTMS_MODIFY_ACCESS | 
 
 
 
 
 | 955 | #define NTMS_GENERIC_EXECUTE NTMS_USE_ACCESS | NTMS_MODIFY_ACCESS | NTMS_CONTROL_ACCESS | 
 
 
 
 
 | 956 | #define NTMS_GENERIC_ALL NTMS_USE_ACCESS | NTMS_MODIFY_ACCESS | NTMS_CONTROL_ACCESS | 
 
 
 
 
 | 957 |  | 
 
 
 
 
 | 958 | #define NTMS_MAXATTR_LENGTH 0x10000 | 
 
 
 
 
 | 959 | #define NTMS_MAXATTR_NAMELEN 32 | 
 
 
 
 
 | 960 |  | 
 
 
 
 
 | 961 | DWORD WINAPI GetNtmsObjectAttributeA(HANDLE hSession,LPNTMS_GUID lpObjectId,DWORD dwType,LPCSTR lpAttributeName,LPVOID lpAttributeData,LPDWORD lpAttributeSize); | 
 
 
 
 
 | 962 | DWORD WINAPI GetNtmsObjectAttributeW(HANDLE hSession,LPNTMS_GUID lpObjectId,DWORD dwType,LPCWSTR lpAttributeName,LPVOID lpAttributeData,LPDWORD lpAttributeSize); | 
 
 
 
 
 | 963 | DWORD WINAPI SetNtmsObjectAttributeA(HANDLE hSession,LPNTMS_GUID lpObjectId,DWORD dwType,LPCSTR lpAttributeName,LPVOID lpAttributeData,DWORD dwAttributeSize); | 
 
 
 
 
 | 964 | DWORD WINAPI SetNtmsObjectAttributeW(HANDLE hSession,LPNTMS_GUID lpObjectId,DWORD dwType,LPCWSTR lpAttributeName,LPVOID lpAttributeData,DWORD AttributeSize); | 
 
 
 
 
 | 965 |  | 
 
 
 
 
 | 966 | enum NtmsUITypes { | 
 
 
 
 
 | 967 | NTMS_UITYPE_INVALID = 0, | 
 
 
 
 
 | 968 | NTMS_UITYPE_INFO,NTMS_UITYPE_REQ,NTMS_UITYPE_ERR,NTMS_UITYPE_MAX | 
 
 
 
 
 | 969 | }; | 
 
 
 
 
 | 970 |  | 
 
 
 
 
 | 971 | enum NtmsUIOperations { | 
 
 
 
 
 | 972 | NTMS_UIDEST_ADD = 1, | 
 
 
 
 
 | 973 | NTMS_UIDEST_DELETE,NTMS_UIDEST_DELETEALL, | 
 
 
 
 
 | 974 | NTMS_UIOPERATION_MAX | 
 
 
 
 
 | 975 | }; | 
 
 
 
 
 | 976 |  | 
 
 
 
 
 | 977 | DWORD WINAPI GetNtmsUIOptionsA(HANDLE hSession,const LPNTMS_GUID lpObjectId,DWORD dwType,LPSTR lpszDestination,LPDWORD lpdwBufSize); | 
 
 
 
 
 | 978 | DWORD WINAPI GetNtmsUIOptionsW(HANDLE hSession,const LPNTMS_GUID lpObjectId,DWORD dwType,LPWSTR lpszDestination,LPDWORD lpdwBufSize); | 
 
 
 
 
 | 979 | DWORD WINAPI SetNtmsUIOptionsA(HANDLE hSession,const LPNTMS_GUID lpObjectId,DWORD dwType,DWORD dwOperation,LPCSTR lpszDestination); | 
 
 
 
 
 | 980 | DWORD WINAPI SetNtmsUIOptionsW(HANDLE hSession,const LPNTMS_GUID lpObjectId,DWORD dwType,DWORD dwOperation,LPCWSTR lpszDestination); | 
 
 
 
 
 | 981 | DWORD WINAPI SubmitNtmsOperatorRequestW(HANDLE hSession,DWORD dwRequest,LPCWSTR lpMessage,LPNTMS_GUID lpArg1Id,LPNTMS_GUID lpArg2Id,LPNTMS_GUID lpRequestId); | 
 
 
 
 
 | 982 | DWORD WINAPI SubmitNtmsOperatorRequestA(HANDLE hSession,DWORD dwRequest,LPCSTR lpMessage,LPNTMS_GUID lpArg1Id,LPNTMS_GUID lpArg2Id,LPNTMS_GUID lpRequestId); | 
 
 
 
 
 | 983 | DWORD WINAPI WaitForNtmsOperatorRequest(HANDLE hSession,LPNTMS_GUID lpRequestId,DWORD dwTimeout); | 
 
 
 
 
 | 984 | DWORD WINAPI CancelNtmsOperatorRequest(HANDLE hSession,LPNTMS_GUID lpRequestId); | 
 
 
 
 
 | 985 | DWORD WINAPI SatisfyNtmsOperatorRequest(HANDLE hSession,LPNTMS_GUID lpRequestId); | 
 
 
 
 
 | 986 |  | 
 
 
 
 
 | 987 | #ifndef NTMS_NOREDEF | 
 
 
 
 
 | 988 | enum NtmsNotificationOperations { | 
 
 
 
 
 | 989 | NTMS_OBJ_UPDATE = 1, | 
 
 
 
 
 | 990 | NTMS_OBJ_INSERT,NTMS_OBJ_DELETE,NTMS_EVENT_SIGNAL,NTMS_EVENT_COMPLETE | 
 
 
 
 
 | 991 | }; | 
 
 
 
 
 | 992 |  | 
 
 
 
 
 | 993 | typedef struct _NTMS_NOTIFICATIONINFORMATION { | 
 
 
 
 
 | 994 | DWORD dwOperation; | 
 
 
 
 
 | 995 | NTMS_GUID ObjectId; | 
 
 
 
 
 | 996 | } NTMS_NOTIFICATIONINFORMATION,*LPNTMS_NOTIFICATIONINFORMATION; | 
 
 
 
 
 | 997 | #endif | 
 
 
 
 
 | 998 |  | 
 
 
 
 
 | 999 | DWORD WINAPI ImportNtmsDatabase(HANDLE hSession); | 
 
 
 
 
 | 1000 | DWORD WINAPI ExportNtmsDatabase(HANDLE hSession); | 
 
 
 
 
 | 1001 | DWORD WINAPI ImportNtmsDatabase(HANDLE hSession); | 
 
 
 
 
 | 1002 | DWORD WINAPI ExportNtmsDatabase(HANDLE hSession); | 
 
 
 
 
 | 1003 | HANDLE WINAPI OpenNtmsNotification(HANDLE hSession,DWORD dwType); | 
 
 
 
 
 | 1004 | DWORD WINAPI WaitForNtmsNotification(HANDLE hNotification,LPNTMS_NOTIFICATIONINFORMATION lpNotificationInformation,DWORD dwTimeout); | 
 
 
 
 
 | 1005 | DWORD WINAPI CloseNtmsNotification(HANDLE hNotification); | 
 
 
 
 
 | 1006 | DWORD WINAPI EjectDiskFromSADriveW(LPCWSTR lpComputerName,LPCWSTR lpAppName,LPCWSTR lpDeviceName,HWND hWnd,LPCWSTR lpTitle,LPCWSTR lpMessage,DWORD dwOptions); | 
 
 
 
 
 | 1007 | DWORD WINAPI EjectDiskFromSADriveA(LPCSTR lpComputerName,LPCSTR lpAppName,LPCSTR lpDeviceName,HWND hWnd,LPCSTR lpTitle,LPCSTR lpMessage,DWORD dwOptions); | 
 
 
 
 
 | 1008 | DWORD WINAPI GetVolumesFromDriveW(LPWSTR pszDriveName,LPWSTR *VolumeNameBufferPtr,LPWSTR *DriveLetterBufferPtr); | 
 
 
 
 
 | 1009 | DWORD WINAPI GetVolumesFromDriveA(LPSTR pszDriveName,LPSTR *VolumeNameBufferPtr,LPSTR *DriveLetterBufferPtr); | 
 
 
 
 
 | 1010 |  | 
 
 
 
 
 | 1011 | #ifdef __cplusplus | 
 
 
 
 
 | 1012 | } | 
 
 
 
 
 | 1013 | #endif | 
 
 
 
 
 | 1014 |  | 
 
 
 
 
 | 1015 | #pragma pack() | 
 
 
 
 
 | 1016 | #endif |