| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the mingw-w64 runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| #ifndef _INCL_NTMSAPI_H_ |
| #define _INCL_NTMSAPI_H_ |
| |
| #include <_mingw_unicode.h> |
| |
| #pragma pack(8) |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /* See http://msdn.microsoft.com/en-us/library/cc245176%28PROT.13%29.aspx */ |
| typedef GUID NTMS_GUID; |
| typedef GUID *LPNTMS_GUID; |
| typedef BYTE *PSECURITY_DESCRIPTOR_NTMS; |
| typedef ULONG_PTR NTMS_HANDLE; |
| |
| |
| #define NTMS_NULLGUID {0,0,0,{0,0,0,0,0,0,0,0}} |
| #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)) |
| |
| #define OpenNtmsSession __MINGW_NAME_AW(OpenNtmsSession) |
| #define GetNtmsDeviceName __MINGW_NAME_AW(GetNtmsDeviceName) |
| #define GetNtmsObjectInformation __MINGW_NAME_AW(GetNtmsObjectInformation) |
| #define SetNtmsObjectInformation __MINGW_NAME_AW(SetNtmsObjectInformation) |
| #define CreateNtmsMediaPool __MINGW_NAME_AW(CreateNtmsMediaPool) |
| #define GetNtmsMediaPoolName __MINGW_NAME_AW(GetNtmsMediaPoolName) |
| #define GetNtmsObjectAttribute __MINGW_NAME_AW(GetNtmsObjectAttribute) |
| #define SetNtmsObjectAttribute __MINGW_NAME_AW(SetNtmsObjectAttribute) |
| #define GetNtmsUIOptions __MINGW_NAME_AW(GetNtmsUIOptions) |
| #define SetNtmsUIOptions __MINGW_NAME_AW(SetNtmsUIOptions) |
| #define SubmitNtmsOperatorRequest __MINGW_NAME_AW(SubmitNtmsOperatorRequest) |
| |
| #define CreateNtmsMedia __MINGW_NAME_AW(CreateNtmsMedia) |
| #define EjectDiskFromSADrive __MINGW_NAME_AW(EjectDiskFromSADrive) |
| #define GetVolumesFromDrive __MINGW_NAME_AW(GetVolumesFromDrive) |
| |
| #ifndef NTMS_NOREDEF |
| |
| enum NtmsObjectsTypes { |
| NTMS_UNKNOWN = 0, |
| NTMS_OBJECT,NTMS_CHANGER,NTMS_CHANGER_TYPE,NTMS_COMPUTER,NTMS_DRIVE,NTMS_DRIVE_TYPE,NTMS_IEDOOR,NTMS_IEPORT,NTMS_LIBRARY, |
| NTMS_LIBREQUEST,NTMS_LOGICAL_MEDIA,NTMS_MEDIA_POOL,NTMS_MEDIA_TYPE,NTMS_PARTITION,NTMS_PHYSICAL_MEDIA,NTMS_STORAGESLOT, |
| NTMS_OPREQUEST,NTMS_UI_DESTINATION,NTMS_NUMBER_OF_OBJECT_TYPES |
| }; |
| |
| typedef struct _NTMS_ASYNC_IO { |
| NTMS_GUID OperationId; |
| NTMS_GUID EventId; |
| DWORD dwOperationType; |
| DWORD dwResult; |
| DWORD dwAsyncState; |
| HANDLE hEvent; |
| WINBOOL bOnStateChange; |
| } NTMS_ASYNC_IO,*LPNTMS_ASYNC_IO; |
| |
| enum NtmsAsyncStatus { |
| NTMS_ASYNCSTATE_QUEUED = 0,NTMS_ASYNCSTATE_WAIT_RESOURCE,NTMS_ASYNCSTATE_WAIT_OPERATOR,NTMS_ASYNCSTATE_INPROCESS,NTMS_ASYNCSTATE_COMPLETE |
| }; |
| |
| enum NtmsAsyncOperations { |
| NTMS_ASYNCOP_MOUNT = 1 |
| }; |
| #endif |
| |
| enum NtmsSessionOptions { |
| NTMS_SESSION_QUERYEXPEDITE = 0x1 |
| }; |
| |
| HANDLE WINAPI OpenNtmsSessionW(LPCWSTR lpServer,LPCWSTR lpApplication,DWORD dwOptions); |
| HANDLE WINAPI OpenNtmsSessionA(LPCSTR lpServer,LPCSTR lpApplication,DWORD dwOptions); |
| DWORD WINAPI CloseNtmsSession(HANDLE hSession); |
| |
| #ifndef NTMS_NOREDEF |
| |
| enum NtmsMountOptions { |
| NTMS_MOUNT_READ = 0x0001,NTMS_MOUNT_WRITE = 0x0002,NTMS_MOUNT_ERROR_NOT_AVAILABLE = 0x0004,NTMS_MOUNT_ERROR_IF_UNAVAILABLE = 0x0004, |
| NTMS_MOUNT_ERROR_OFFLINE = 0x0008,NTMS_MOUNT_ERROR_IF_OFFLINE = 0x0008,NTMS_MOUNT_SPECIFIC_DRIVE = 0x0010,NTMS_MOUNT_NOWAIT = 0x0020 |
| }; |
| |
| enum NtmsDismountOptions { |
| NTMS_DISMOUNT_DEFERRED = 0x0001,NTMS_DISMOUNT_IMMEDIATE = 0x0002 |
| }; |
| |
| enum NtmsMountPriority { |
| NTMS_PRIORITY_DEFAULT = 0,NTMS_PRIORITY_HIGHEST = 15,NTMS_PRIORITY_HIGH = 7,NTMS_PRIORITY_NORMAL = 0,NTMS_PRIORITY_LOW = -7, |
| NTMS_PRIORITY_LOWEST = -15 |
| }; |
| |
| typedef struct _NTMS_MOUNT_INFORMATION { |
| DWORD dwSize; |
| LPVOID lpReserved; |
| } NTMS_MOUNT_INFORMATION,*LPNTMS_MOUNT_INFORMATION; |
| #endif |
| |
| DWORD WINAPI MountNtmsMedia(HANDLE hSession,LPNTMS_GUID lpMediaId,LPNTMS_GUID lpDriveId,DWORD dwCount,DWORD dwOptions,int dwPriority,DWORD dwTimeout,LPNTMS_MOUNT_INFORMATION lpMountInformation); |
| DWORD WINAPI DismountNtmsMedia(HANDLE hSession,LPNTMS_GUID lpMediaId,DWORD dwCount,DWORD dwOptions); |
| |
| #ifndef NTMS_NOREDEF |
| enum NtmsAllocateOptions { |
| NTMS_ALLOCATE_NEW = 0x0001,NTMS_ALLOCATE_NEXT = 0x0002,NTMS_ALLOCATE_ERROR_IF_UNAVAILABLE = 0x0004 |
| }; |
| |
| typedef struct _NTMS_ALLOCATION_INFORMATION { |
| DWORD dwSize; |
| LPVOID lpReserved; |
| NTMS_GUID AllocatedFrom; |
| } NTMS_ALLOCATION_INFORMATION,*LPNTMS_ALLOCATION_INFORMATION; |
| #endif |
| |
| DWORD WINAPI AllocateNtmsMedia(HANDLE hSession,LPNTMS_GUID lpMediaPool,LPNTMS_GUID lpPartition,LPNTMS_GUID lpMediaId,DWORD dwOptions,DWORD dwTimeout,LPNTMS_ALLOCATION_INFORMATION lpAllocateInformation); |
| DWORD WINAPI DeallocateNtmsMedia(HANDLE hSession,LPNTMS_GUID lpMediaId,DWORD dwOptions); |
| DWORD WINAPI SwapNtmsMedia(HANDLE hSession,LPNTMS_GUID lpMediaId1,LPNTMS_GUID lpMediaId2); |
| DWORD WINAPI AddNtmsMediaType(HANDLE hSession,LPNTMS_GUID lpMediaTypeId,LPNTMS_GUID lpLibId); |
| DWORD WINAPI DeleteNtmsMediaType(HANDLE hSession,LPNTMS_GUID lpMediaTypeId,LPNTMS_GUID lpLibId); |
| DWORD WINAPI ChangeNtmsMediaType(HANDLE hSession,LPNTMS_GUID lpMediaId,LPNTMS_GUID lpPoolId); |
| DWORD WINAPI DecommissionNtmsMedia(HANDLE hSession,LPNTMS_GUID lpMediaId); |
| DWORD WINAPI SetNtmsMediaComplete(HANDLE hSession,LPNTMS_GUID lpMediaId); |
| DWORD WINAPI DeleteNtmsMedia(HANDLE hSession,LPNTMS_GUID lpMediaId); |
| |
| #ifndef NTMS_NOREDEF |
| enum NtmsCreateOptions { |
| NTMS_OPEN_EXISTING = 0x0001,NTMS_CREATE_NEW = 0x0002,NTMS_OPEN_ALWAYS = 0x0003 |
| }; |
| #endif |
| |
| #ifdef PRE_SEVIL |
| DWORD WINAPI CreateNtmsMediaPool(HANDLE hSession,LPCTSTR lpPoolName,LPNTMS_GUID lpMediaType,DWORD dwAction,LPSECURITY_ATTRIBUTES lpSecurityAttributes,LPNTMS_GUID lpPoolId); |
| #endif |
| DWORD WINAPI CreateNtmsMediaPoolA(HANDLE hSession,LPCSTR lpPoolName,LPNTMS_GUID lpMediaType,DWORD dwAction,LPSECURITY_ATTRIBUTES lpSecurityAttributes,LPNTMS_GUID lpPoolId); |
| DWORD WINAPI CreateNtmsMediaPoolW(HANDLE hSession,LPCWSTR lpPoolName,LPNTMS_GUID lpMediaType,DWORD dwAction,LPSECURITY_ATTRIBUTES lpSecurityAttributes,LPNTMS_GUID lpPoolId); |
| DWORD WINAPI GetNtmsMediaPoolNameA(HANDLE hSession,LPNTMS_GUID lpPoolId,LPSTR lpNameBuf,LPDWORD lpdwBufSize); |
| DWORD WINAPI GetNtmsMediaPoolNameW(HANDLE hSession,LPNTMS_GUID lpPoolId,LPWSTR lpNameBuf,LPDWORD lpdwBufSize); |
| DWORD WINAPI MoveToNtmsMediaPool(HANDLE hSession,LPNTMS_GUID lpMediaId,LPNTMS_GUID lpPoolId); |
| DWORD WINAPI DeleteNtmsMediaPool(HANDLE hSession,LPNTMS_GUID lpPoolId); |
| DWORD WINAPI DeleteNtmsLibrary(HANDLE hSession,LPNTMS_GUID lpLibraryId); |
| DWORD WINAPI DeleteNtmsDrive(HANDLE hSession,LPNTMS_GUID lpDriveId); |
| |
| #define NTMS_OBJECTNAME_LENGTH 64 |
| #define NTMS_DESCRIPTION_LENGTH 127 |
| #define NTMS_DEVICENAME_LENGTH 64 |
| #define NTMS_SERIALNUMBER_LENGTH 32 |
| #define NTMS_REVISION_LENGTH 32 |
| #define NTMS_BARCODE_LENGTH 64 |
| #define NTMS_SEQUENCE_LENGTH 32 |
| #define NTMS_VENDORNAME_LENGTH 128 |
| #define NTMS_PRODUCTNAME_LENGTH 128 |
| #define NTMS_USERNAME_LENGTH 64 |
| #define NTMS_APPLICATIONNAME_LENGTH 64 |
| #define NTMS_COMPUTERNAME_LENGTH 64 |
| #define NTMS_I1_MESSAGE_LENGTH 127 |
| #define NTMS_MESSAGE_LENGTH 256 |
| #define NTMS_POOLHIERARCHY_LENGTH 512 |
| #define NTMS_OMIDLABELID_LENGTH 255 |
| #define NTMS_OMIDLABELTYPE_LENGTH 64 |
| #define NTMS_OMIDLABELINFO_LENGTH 256 |
| |
| #ifndef NTMS_NOREDEF |
| |
| enum NtmsDriveState { |
| NTMS_DRIVESTATE_DISMOUNTED = 0,NTMS_DRIVESTATE_MOUNTED = 1,NTMS_DRIVESTATE_LOADED = 2,NTMS_DRIVESTATE_UNLOADED = 5, |
| NTMS_DRIVESTATE_BEING_CLEANED = 6,NTMS_DRIVESTATE_DISMOUNTABLE = 7 |
| }; |
| |
| #define _NTMS_DRIVEINFORMATION __MINGW_NAME_AW(_NTMS_DRIVEINFORMATION) |
| #define NTMS_DRIVEINFORMATION __MINGW_NAME_AW(NTMS_DRIVEINFORMATION) |
| |
| typedef struct _NTMS_DRIVEINFORMATIONA { |
| DWORD Number; |
| DWORD State; |
| NTMS_GUID DriveType; |
| CHAR szDeviceName[NTMS_DEVICENAME_LENGTH]; |
| CHAR szSerialNumber[NTMS_SERIALNUMBER_LENGTH]; |
| CHAR szRevision[NTMS_REVISION_LENGTH]; |
| WORD ScsiPort; |
| WORD ScsiBus; |
| WORD ScsiTarget; |
| WORD ScsiLun; |
| DWORD dwMountCount; |
| SYSTEMTIME LastCleanedTs; |
| NTMS_GUID SavedPartitionId; |
| NTMS_GUID Library; |
| GUID Reserved; |
| DWORD dwDeferDismountDelay; |
| } NTMS_DRIVEINFORMATIONA; |
| |
| typedef struct _NTMS_DRIVEINFORMATIONW { |
| DWORD Number; |
| DWORD State; |
| NTMS_GUID DriveType; |
| WCHAR szDeviceName[NTMS_DEVICENAME_LENGTH]; |
| WCHAR szSerialNumber[NTMS_SERIALNUMBER_LENGTH]; |
| WCHAR szRevision[NTMS_REVISION_LENGTH]; |
| WORD ScsiPort; |
| WORD ScsiBus; |
| WORD ScsiTarget; |
| WORD ScsiLun; |
| DWORD dwMountCount; |
| SYSTEMTIME LastCleanedTs; |
| NTMS_GUID SavedPartitionId; |
| NTMS_GUID Library; |
| GUID Reserved; |
| DWORD dwDeferDismountDelay; |
| } NTMS_DRIVEINFORMATIONW; |
| |
| enum NtmsLibraryType { |
| NTMS_LIBRARYTYPE_UNKNOWN = 0,NTMS_LIBRARYTYPE_OFFLINE = 1,NTMS_LIBRARYTYPE_ONLINE = 2,NTMS_LIBRARYTYPE_STANDALONE = 3 |
| }; |
| |
| enum NtmsLibraryFlags { |
| NTMS_LIBRARYFLAG_FIXEDOFFLINE = 0x01,NTMS_LIBRARYFLAG_CLEANERPRESENT = 0x02,NTMS_LIBRARYFLAG_AUTODETECTCHANGE = 0x04, |
| NTMS_LIBRARYFLAG_IGNORECLEANERUSESREMAINING = 0x08,NTMS_LIBRARYFLAG_RECOGNIZECLEANERBARCODE = 0x10 |
| }; |
| |
| enum NtmsInventoryMethod { |
| NTMS_INVENTORY_NONE = 0,NTMS_INVENTORY_FAST = 1,NTMS_INVENTORY_OMID = 2,NTMS_INVENTORY_DEFAULT = 3,NTMS_INVENTORY_SLOT = 4, |
| NTMS_INVENTORY_STOP = 5,NTMS_INVENTORY_MAX |
| }; |
| |
| typedef struct _NTMS_LIBRARYINFORMATION { |
| DWORD LibraryType; |
| NTMS_GUID CleanerSlot; |
| NTMS_GUID CleanerSlotDefault; |
| WINBOOL LibrarySupportsDriveCleaning; |
| WINBOOL BarCodeReaderInstalled; |
| DWORD InventoryMethod; |
| DWORD dwCleanerUsesRemaining; |
| DWORD FirstDriveNumber; |
| DWORD dwNumberOfDrives; |
| DWORD FirstSlotNumber; |
| DWORD dwNumberOfSlots; |
| DWORD FirstDoorNumber; |
| DWORD dwNumberOfDoors; |
| DWORD FirstPortNumber; |
| DWORD dwNumberOfPorts; |
| DWORD FirstChangerNumber; |
| DWORD dwNumberOfChangers; |
| DWORD dwNumberOfMedia; |
| DWORD dwNumberOfMediaTypes; |
| DWORD dwNumberOfLibRequests; |
| GUID Reserved; |
| WINBOOL AutoRecovery; |
| DWORD dwFlags; |
| } NTMS_LIBRARYINFORMATION; |
| |
| #define _NTMS_CHANGERINFORMATION __MINGW_NAME_AW(_NTMS_CHANGERINFORMATION) |
| #define NTMS_CHANGERINFORMATION __MINGW_NAME_AW(NTMS_CHANGERINFORMATION) |
| |
| typedef struct _NTMS_CHANGERINFORMATIONA { |
| DWORD Number; |
| NTMS_GUID ChangerType; |
| CHAR szSerialNumber[NTMS_SERIALNUMBER_LENGTH]; |
| CHAR szRevision[NTMS_REVISION_LENGTH]; |
| CHAR szDeviceName[NTMS_DEVICENAME_LENGTH]; |
| WORD ScsiPort; |
| WORD ScsiBus; |
| WORD ScsiTarget; |
| WORD ScsiLun; |
| NTMS_GUID Library; |
| } NTMS_CHANGERINFORMATIONA; |
| |
| typedef struct _NTMS_CHANGERINFORMATIONW { |
| DWORD Number; |
| NTMS_GUID ChangerType; |
| WCHAR szSerialNumber[NTMS_SERIALNUMBER_LENGTH]; |
| WCHAR szRevision[NTMS_REVISION_LENGTH]; |
| WCHAR szDeviceName[NTMS_DEVICENAME_LENGTH]; |
| WORD ScsiPort; |
| WORD ScsiBus; |
| WORD ScsiTarget; |
| WORD ScsiLun; |
| NTMS_GUID Library; |
| } NTMS_CHANGERINFORMATIONW; |
| |
| enum NtmsSlotState { |
| NTMS_SLOTSTATE_UNKNOWN = 0,NTMS_SLOTSTATE_FULL = 1,NTMS_SLOTSTATE_EMPTY = 2,NTMS_SLOTSTATE_NOTPRESENT = 3,NTMS_SLOTSTATE_NEEDSINVENTORY = 4 |
| }; |
| |
| typedef struct _NTMS_STORAGESLOTINFORMATION { |
| DWORD Number; |
| DWORD State; |
| NTMS_GUID Library; |
| } NTMS_STORAGESLOTINFORMATION; |
| |
| enum NtmsDoorState { |
| NTMS_DOORSTATE_UNKNOWN = 0,NTMS_DOORSTATE_CLOSED = 1,NTMS_DOORSTATE_OPEN = 2 |
| }; |
| |
| typedef struct _NTMS_IEDOORINFORMATION { |
| DWORD Number; |
| DWORD State; |
| WORD MaxOpenSecs; |
| NTMS_GUID Library; |
| } NTMS_IEDOORINFORMATION; |
| |
| enum NtmsPortPosition { |
| NTMS_PORTPOSITION_UNKNOWN = 0,NTMS_PORTPOSITION_EXTENDED = 1,NTMS_PORTPOSITION_RETRACTED = 2 |
| }; |
| |
| enum NtmsPortContent { |
| NTMS_PORTCONTENT_UNKNOWN = 0,NTMS_PORTCONTENT_FULL = 1,NTMS_PORTCONTENT_EMPTY = 2 |
| }; |
| |
| typedef struct _NTMS_IEPORTINFORMATION { |
| DWORD Number; |
| DWORD Content; |
| DWORD Position; |
| WORD MaxExtendSecs; |
| NTMS_GUID Library; |
| } NTMS_IEPORTINFORMATION; |
| |
| enum NtmsBarCodeState { |
| NTMS_BARCODESTATE_OK = 1,NTMS_BARCODESTATE_UNREADABLE = 2 |
| }; |
| |
| enum NtmsMediaState { |
| NTMS_MEDIASTATE_IDLE = 0, |
| NTMS_MEDIASTATE_INUSE,NTMS_MEDIASTATE_MOUNTED,NTMS_MEDIASTATE_LOADED,NTMS_MEDIASTATE_UNLOADED, |
| NTMS_MEDIASTATE_OPERROR,NTMS_MEDIASTATE_OPREQ |
| }; |
| |
| #define _NTMS_PMIDINFORMATION __MINGW_NAME_AW(_NTMS_PMIDINFORMATION) |
| #define NTMS_PMIDINFORMATION __MINGW_NAME_AW(NTMS_PMIDINFORMATION) |
| |
| typedef struct _NTMS_PMIDINFORMATIONA { |
| NTMS_GUID CurrentLibrary; |
| NTMS_GUID MediaPool; |
| NTMS_GUID Location; |
| DWORD LocationType; |
| NTMS_GUID MediaType; |
| NTMS_GUID HomeSlot; |
| CHAR szBarCode[NTMS_BARCODE_LENGTH]; |
| DWORD BarCodeState; |
| CHAR szSequenceNumber[NTMS_SEQUENCE_LENGTH]; |
| DWORD MediaState; |
| DWORD dwNumberOfPartitions; |
| DWORD dwMediaTypeCode; |
| DWORD dwDensityCode; |
| NTMS_GUID MountedPartition; |
| } NTMS_PMIDINFORMATIONA; |
| |
| typedef struct _NTMS_PMIDINFORMATIONW { |
| NTMS_GUID CurrentLibrary; |
| NTMS_GUID MediaPool; |
| NTMS_GUID Location; |
| DWORD LocationType; |
| NTMS_GUID MediaType; |
| NTMS_GUID HomeSlot; |
| WCHAR szBarCode[NTMS_BARCODE_LENGTH]; |
| DWORD BarCodeState; |
| WCHAR szSequenceNumber[NTMS_SEQUENCE_LENGTH]; |
| DWORD MediaState; |
| DWORD dwNumberOfPartitions; |
| DWORD dwMediaTypeCode; |
| DWORD dwDensityCode; |
| NTMS_GUID MountedPartition; |
| } NTMS_PMIDINFORMATIONW; |
| |
| typedef struct _NTMS_LMIDINFORMATION { |
| NTMS_GUID MediaPool; |
| DWORD dwNumberOfPartitions; |
| } NTMS_LMIDINFORMATION; |
| |
| enum NtmsPartitionState { |
| NTMS_PARTSTATE_UNKNOWN = 0, |
| NTMS_PARTSTATE_UNPREPARED,NTMS_PARTSTATE_INCOMPATIBLE,NTMS_PARTSTATE_DECOMMISSIONED, |
| NTMS_PARTSTATE_AVAILABLE,NTMS_PARTSTATE_ALLOCATED,NTMS_PARTSTATE_COMPLETE,NTMS_PARTSTATE_FOREIGN,NTMS_PARTSTATE_IMPORT, |
| NTMS_PARTSTATE_RESERVED |
| }; |
| |
| #define NTMS_PARTSTATE_NEW NTMS_PARTSTATE_UNKNOWN |
| |
| #define _NTMS_PARTITIONINFORMATION __MINGW_NAME_AW(_NTMS_PARTITIONINFORMATION) |
| #define NTMS_PARTITIONINFORMATION __MINGW_NAME_AW(NTMS_PARTITIONINFORMATION) |
| |
| typedef struct _NTMS_PARTITIONINFORMATIONA { |
| NTMS_GUID PhysicalMedia; |
| NTMS_GUID LogicalMedia; |
| DWORD State; |
| WORD Side; |
| DWORD dwOmidLabelIdLength; |
| BYTE OmidLabelId[NTMS_OMIDLABELID_LENGTH]; |
| CHAR szOmidLabelType[NTMS_OMIDLABELTYPE_LENGTH]; |
| CHAR szOmidLabelInfo[NTMS_OMIDLABELINFO_LENGTH]; |
| DWORD dwMountCount; |
| DWORD dwAllocateCount; |
| LARGE_INTEGER Capacity; |
| } NTMS_PARTITIONINFORMATIONA; |
| |
| typedef struct _NTMS_PARTITIONINFORMATIONW { |
| NTMS_GUID PhysicalMedia; |
| NTMS_GUID LogicalMedia; |
| DWORD State; |
| WORD Side; |
| DWORD dwOmidLabelIdLength; |
| BYTE OmidLabelId[NTMS_OMIDLABELID_LENGTH]; |
| WCHAR szOmidLabelType[NTMS_OMIDLABELTYPE_LENGTH]; |
| WCHAR szOmidLabelInfo[NTMS_OMIDLABELINFO_LENGTH]; |
| DWORD dwMountCount; |
| DWORD dwAllocateCount; |
| LARGE_INTEGER Capacity; |
| } NTMS_PARTITIONINFORMATIONW; |
| |
| enum NtmsPoolType { |
| NTMS_POOLTYPE_UNKNOWN = 0,NTMS_POOLTYPE_SCRATCH = 1,NTMS_POOLTYPE_FOREIGN = 2,NTMS_POOLTYPE_IMPORT = 3,NTMS_POOLTYPE_APPLICATION = 1000 |
| }; |
| |
| enum NtmsAllocationPolicy { |
| NTMS_ALLOCATE_FROMSCRATCH = 1 |
| }; |
| |
| enum NtmsDeallocationPolicy { |
| NTMS_DEALLOCATE_TOSCRATCH = 1 |
| }; |
| |
| typedef struct _NTMS_MEDIAPOOLINFORMATION { |
| DWORD PoolType; |
| NTMS_GUID MediaType; |
| NTMS_GUID Parent; |
| DWORD AllocationPolicy; |
| DWORD DeallocationPolicy; |
| DWORD dwMaxAllocates; |
| DWORD dwNumberOfPhysicalMedia; |
| DWORD dwNumberOfLogicalMedia; |
| DWORD dwNumberOfMediaPools; |
| } NTMS_MEDIAPOOLINFORMATION; |
| |
| enum NtmsReadWriteCharacteristics { |
| NTMS_MEDIARW_UNKNOWN = 0,NTMS_MEDIARW_REWRITABLE = 1,NTMS_MEDIARW_WRITEONCE = 2,NTMS_MEDIARW_READONLY = 3 |
| }; |
| |
| typedef struct _NTMS_MEDIATYPEINFORMATION { |
| DWORD MediaType; |
| DWORD NumberOfSides; |
| DWORD ReadWriteCharacteristics; |
| DWORD DeviceType; |
| } NTMS_MEDIATYPEINFORMATION; |
| |
| #define _NTMS_DRIVETYPEINFORMATION __MINGW_NAME_AW(_NTMS_DRIVETYPEINFORMATION) |
| #define NTMS_DRIVETYPEINFORMATION __MINGW_NAME_AW(NTMS_DRIVETYPEINFORMATION) |
| |
| typedef struct _NTMS_DRIVETYPEINFORMATIONA { |
| CHAR szVendor[NTMS_VENDORNAME_LENGTH]; |
| CHAR szProduct[NTMS_PRODUCTNAME_LENGTH]; |
| DWORD NumberOfHeads; |
| DWORD DeviceType; |
| } NTMS_DRIVETYPEINFORMATIONA; |
| |
| typedef struct _NTMS_DRIVETYPEINFORMATIONW { |
| WCHAR szVendor[NTMS_VENDORNAME_LENGTH]; |
| WCHAR szProduct[NTMS_PRODUCTNAME_LENGTH]; |
| DWORD NumberOfHeads; |
| DWORD DeviceType; |
| } NTMS_DRIVETYPEINFORMATIONW; |
| |
| #define _NTMS_CHANGERTYPEINFORMATION __MINGW_NAME_AW(_NTMS_CHANGERTYPEINFORMATION) |
| #define NTMS_CHANGERTYPEINFORMATION __MINGW_NAME_AW(NTMS_CHANGERTYPEINFORMATION) |
| |
| typedef struct _NTMS_CHANGERTYPEINFORMATIONA { |
| CHAR szVendor[NTMS_VENDORNAME_LENGTH]; |
| CHAR szProduct[NTMS_PRODUCTNAME_LENGTH]; |
| DWORD DeviceType; |
| } NTMS_CHANGERTYPEINFORMATIONA; |
| |
| typedef struct _NTMS_CHANGERTYPEINFORMATIONW { |
| WCHAR szVendor[NTMS_VENDORNAME_LENGTH]; |
| WCHAR szProduct[NTMS_PRODUCTNAME_LENGTH]; |
| DWORD DeviceType; |
| } NTMS_CHANGERTYPEINFORMATIONW; |
| |
| enum NtmsLmOperation { |
| NTMS_LM_REMOVE = 0,NTMS_LM_DISABLECHANGER = 1,NTMS_LM_DISABLELIBRARY = 1,NTMS_LM_ENABLECHANGER = 2,NTMS_LM_ENABLELIBRARY = 2, |
| NTMS_LM_DISABLEDRIVE = 3,NTMS_LM_ENABLEDRIVE = 4,NTMS_LM_DISABLEMEDIA = 5,NTMS_LM_ENABLEMEDIA = 6,NTMS_LM_UPDATEOMID = 7, |
| NTMS_LM_INVENTORY = 8,NTMS_LM_DOORACCESS = 9,NTMS_LM_EJECT = 10,NTMS_LM_EJECTCLEANER = 11,NTMS_LM_INJECT = 12,NTMS_LM_INJECTCLEANER = 13, |
| NTMS_LM_PROCESSOMID = 14,NTMS_LM_CLEANDRIVE = 15,NTMS_LM_DISMOUNT = 16,NTMS_LM_MOUNT = 17,NTMS_LM_WRITESCRATCH = 18,NTMS_LM_CLASSIFY = 19, |
| NTMS_LM_RESERVECLEANER = 20,NTMS_LM_RELEASECLEANER = 21,NTMS_LM_MAXWORKITEM |
| }; |
| |
| enum NtmsLmState { |
| NTMS_LM_QUEUED = 0,NTMS_LM_INPROCESS = 1,NTMS_LM_PASSED = 2,NTMS_LM_FAILED = 3,NTMS_LM_INVALID = 4,NTMS_LM_WAITING = 5, |
| NTMS_LM_DEFERRED = 6,NTMS_LM_DEFFERED = 6,NTMS_LM_CANCELLED = 7,NTMS_LM_STOPPED = 8 |
| }; |
| |
| #define _NTMS_LIBREQUESTINFORMATION __MINGW_NAME_AW(_NTMS_LIBREQUESTINFORMATION) |
| #define NTMS_LIBREQUESTINFORMATION __MINGW_NAME_AW(NTMS_LIBREQUESTINFORMATION) |
| |
| typedef struct _NTMS_LIBREQUESTINFORMATIONA { |
| DWORD OperationCode; |
| DWORD OperationOption; |
| DWORD State; |
| NTMS_GUID PartitionId; |
| NTMS_GUID DriveId; |
| NTMS_GUID PhysMediaId; |
| NTMS_GUID Library; |
| NTMS_GUID SlotId; |
| SYSTEMTIME TimeQueued; |
| SYSTEMTIME TimeCompleted; |
| CHAR szApplication[NTMS_APPLICATIONNAME_LENGTH]; |
| CHAR szUser[NTMS_USERNAME_LENGTH]; |
| CHAR szComputer[NTMS_COMPUTERNAME_LENGTH]; |
| DWORD dwErrorCode; |
| NTMS_GUID WorkItemId; |
| DWORD dwPriority; |
| } NTMS_LIBREQUESTINFORMATIONA; |
| |
| typedef struct _NTMS_LIBREQUESTINFORMATIONW { |
| DWORD OperationCode; |
| DWORD OperationOption; |
| DWORD State; |
| NTMS_GUID PartitionId; |
| NTMS_GUID DriveId; |
| NTMS_GUID PhysMediaId; |
| NTMS_GUID Library; |
| NTMS_GUID SlotId; |
| SYSTEMTIME TimeQueued; |
| SYSTEMTIME TimeCompleted; |
| WCHAR szApplication[NTMS_APPLICATIONNAME_LENGTH]; |
| WCHAR szUser[NTMS_USERNAME_LENGTH]; |
| WCHAR szComputer[NTMS_COMPUTERNAME_LENGTH]; |
| DWORD dwErrorCode; |
| NTMS_GUID WorkItemId; |
| DWORD dwPriority; |
| } NTMS_LIBREQUESTINFORMATIONW; |
| |
| enum NtmsOpreqCommand { |
| NTMS_OPREQ_UNKNOWN = 0,NTMS_OPREQ_NEWMEDIA,NTMS_OPREQ_CLEANER,NTMS_OPREQ_DEVICESERVICE,NTMS_OPREQ_MOVEMEDIA, |
| NTMS_OPREQ_MESSAGE |
| }; |
| |
| enum NtmsOpreqState { |
| NTMS_OPSTATE_UNKNOWN = 0, |
| NTMS_OPSTATE_SUBMITTED,NTMS_OPSTATE_ACTIVE,NTMS_OPSTATE_INPROGRESS,NTMS_OPSTATE_REFUSED, |
| NTMS_OPSTATE_COMPLETE |
| }; |
| |
| #define _NTMS_OPREQUESTINFORMATION __MINGW_NAME_AW(_NTMS_OPREQUESTINFORMATION) |
| #define NTMS_OPREQUESTINFORMATION __MINGW_NAME_AW(NTMS_OPREQUESTINFORMATION) |
| |
| typedef struct _NTMS_OPREQUESTINFORMATIONA { |
| DWORD Request; |
| SYSTEMTIME Submitted; |
| DWORD State; |
| CHAR szMessage[NTMS_MESSAGE_LENGTH]; |
| DWORD Arg1Type; |
| NTMS_GUID Arg1; |
| DWORD Arg2Type; |
| NTMS_GUID Arg2; |
| CHAR szApplication[NTMS_APPLICATIONNAME_LENGTH]; |
| CHAR szUser[NTMS_USERNAME_LENGTH]; |
| CHAR szComputer[NTMS_COMPUTERNAME_LENGTH]; |
| } NTMS_OPREQUESTINFORMATIONA; |
| |
| typedef struct _NTMS_OPREQUESTINFORMATIONW { |
| DWORD Request; |
| SYSTEMTIME Submitted; |
| DWORD State; |
| WCHAR szMessage[NTMS_MESSAGE_LENGTH]; |
| DWORD Arg1Type; |
| NTMS_GUID Arg1; |
| DWORD Arg2Type; |
| NTMS_GUID Arg2; |
| WCHAR szApplication[NTMS_APPLICATIONNAME_LENGTH]; |
| WCHAR szUser[NTMS_USERNAME_LENGTH]; |
| WCHAR szComputer[NTMS_COMPUTERNAME_LENGTH]; |
| } NTMS_OPREQUESTINFORMATIONW; |
| |
| typedef struct _NTMS_COMPUTERINFORMATION { |
| DWORD dwLibRequestPurgeTime; |
| DWORD dwOpRequestPurgeTime; |
| DWORD dwLibRequestFlags; |
| DWORD dwOpRequestFlags; |
| DWORD dwMediaPoolPolicy; |
| } NTMS_COMPUTERINFORMATION; |
| |
| enum NtmsLibRequestFlags { |
| NTMS_LIBREQFLAGS_NOAUTOPURGE = 0x01,NTMS_LIBREQFLAGS_NOFAILEDPURGE = 0x02 |
| }; |
| |
| enum NtmsOpRequestFlags { |
| NTMS_OPREQFLAGS_NOAUTOPURGE = 0x01,NTMS_OPREQFLAGS_NOFAILEDPURGE = 0x02,NTMS_OPREQFLAGS_NOALERTS = 0x10,NTMS_OPREQFLAGS_NOTRAYICON = 0x20 |
| }; |
| |
| enum NtmsMediaPoolPolicy { |
| NTMS_POOLPOLICY_PURGEOFFLINESCRATCH = 0x01,NTMS_POOLPOLICY_KEEPOFFLINEIMPORT = 0x02 |
| }; |
| |
| #define _NTMS_OBJECTINFORMATION __MINGW_NAME_AW(_NTMS_OBJECTINFORMATION) |
| #define NTMS_OBJECTINFORMATION __MINGW_NAME_AW(NTMS_OBJECTINFORMATION) |
| #define LPNTMS_OBJECTINFORMATION __MINGW_NAME_AW(LPNTMS_OBJECTINFORMATION) |
| |
| enum NtmsOperationalState { |
| NTMS_READY = 0, |
| NTMS_INITIALIZING = 10, |
| NTMS_NEEDS_SERVICE = 20, |
| NTMS_NOT_PRESENT = 21 |
| }; |
| |
| typedef struct _RSM_MESSAGE { |
| LPGUID lpguidOperation; |
| DWORD dwNtmsType; |
| DWORD dwState; |
| DWORD dwFlags; |
| DWORD dwPriority; |
| DWORD dwErrorCode; |
| LPWSTR lpszComputerName; |
| LPWSTR lpszApplication; |
| LPWSTR lpszUser; |
| LPWSTR lpszTimeSubmitted; |
| LPWSTR lpszMessage; |
| } RSM_MESSAGE, *LPRSM_MESSAGE; |
| |
| typedef struct _NTMS_OBJECTINFORMATIONA { |
| DWORD dwSize; |
| DWORD dwType; |
| SYSTEMTIME Created; |
| SYSTEMTIME Modified; |
| NTMS_GUID ObjectGuid; |
| WINBOOL Enabled; |
| DWORD dwOperationalState; |
| CHAR szName[NTMS_OBJECTNAME_LENGTH]; |
| CHAR szDescription[NTMS_DESCRIPTION_LENGTH]; |
| union { |
| NTMS_DRIVEINFORMATIONA Drive; |
| NTMS_DRIVETYPEINFORMATIONA DriveType; |
| NTMS_LIBRARYINFORMATION Library; |
| NTMS_CHANGERINFORMATIONA Changer; |
| NTMS_CHANGERTYPEINFORMATIONA ChangerType; |
| NTMS_STORAGESLOTINFORMATION StorageSlot; |
| NTMS_IEDOORINFORMATION IEDoor; |
| NTMS_IEPORTINFORMATION IEPort; |
| NTMS_PMIDINFORMATIONA PhysicalMedia; |
| NTMS_LMIDINFORMATION LogicalMedia; |
| NTMS_PARTITIONINFORMATIONA Partition; |
| NTMS_MEDIAPOOLINFORMATION MediaPool; |
| NTMS_MEDIATYPEINFORMATION MediaType; |
| NTMS_LIBREQUESTINFORMATIONA LibRequest; |
| NTMS_OPREQUESTINFORMATIONA OpRequest; |
| NTMS_COMPUTERINFORMATION Computer; |
| } Info; |
| } NTMS_OBJECTINFORMATIONA,*LPNTMS_OBJECTINFORMATIONA; |
| |
| typedef struct _NTMS_OBJECTINFORMATIONW { |
| DWORD dwSize; |
| DWORD dwType; |
| SYSTEMTIME Created; |
| SYSTEMTIME Modified; |
| NTMS_GUID ObjectGuid; |
| WINBOOL Enabled; |
| DWORD dwOperationalState; |
| WCHAR szName[NTMS_OBJECTNAME_LENGTH]; |
| WCHAR szDescription[NTMS_DESCRIPTION_LENGTH]; |
| union { |
| NTMS_DRIVEINFORMATIONW Drive; |
| NTMS_DRIVETYPEINFORMATIONW DriveType; |
| NTMS_LIBRARYINFORMATION Library; |
| NTMS_CHANGERINFORMATIONW Changer; |
| NTMS_CHANGERTYPEINFORMATIONW ChangerType; |
| NTMS_STORAGESLOTINFORMATION StorageSlot; |
| NTMS_IEDOORINFORMATION IEDoor; |
| NTMS_IEPORTINFORMATION IEPort; |
| NTMS_PMIDINFORMATIONW PhysicalMedia; |
| NTMS_LMIDINFORMATION LogicalMedia; |
| NTMS_PARTITIONINFORMATIONW Partition; |
| NTMS_MEDIAPOOLINFORMATION MediaPool; |
| NTMS_MEDIATYPEINFORMATION MediaType; |
| NTMS_LIBREQUESTINFORMATIONW LibRequest; |
| NTMS_OPREQUESTINFORMATIONW OpRequest; |
| NTMS_COMPUTERINFORMATION Computer; |
| } Info; |
| } NTMS_OBJECTINFORMATIONW,*LPNTMS_OBJECTINFORMATIONW; |
| |
| #define NTMS_I1_LIBREQUESTINFORMATION __MINGW_NAME_AW(NTMS_I1_LIBREQUESTINFORMATION) |
| #define NTMS_I1_PARTITIONINFORMATION __MINGW_NAME_AW(NTMS_I1_PARTITIONINFORMATION) |
| #define NTMS_I1_PMIDINFORMATION __MINGW_NAME_AW(NTMS_I1_PMIDINFORMATION) |
| #define NTMS_I1_OPREQUESTINFORMATION __MINGW_NAME_AW(NTMS_I1_OPREQUESTINFORMATION) |
| #define NTMS_I1_OBJECTINFORMATION __MINGW_NAME_AW(NTMS_I1_OBJECTINFORMATION) |
| |
| typedef struct _NTMS_I1_LIBRARYINFORMATION { |
| DWORD LibraryType; |
| NTMS_GUID CleanerSlot; |
| NTMS_GUID CleanerSlotDefault; |
| WINBOOL LibrarySupportsDriveCleaning; |
| WINBOOL BarCodeReaderInstalled; |
| DWORD InventoryMethod; |
| DWORD dwCleanerUsesRemaining; |
| DWORD FirstDriveNumber; |
| DWORD dwNumberOfDrives; |
| DWORD FirstSlotNumber; |
| DWORD dwNumberOfSlots; |
| DWORD FirstDoorNumber; |
| DWORD dwNumberOfDoors; |
| DWORD FirstPortNumber; |
| DWORD dwNumberOfPorts; |
| DWORD FirstChangerNumber; |
| DWORD dwNumberOfChangers; |
| DWORD dwNumberOfMedia; |
| DWORD dwNumberOfMediaTypes; |
| DWORD dwNumberOfLibRequests; |
| GUID Reserved; |
| } NTMS_I1_LIBRARYINFORMATION; |
| |
| typedef struct _NTMS_I1_LIBREQUESTINFORMATIONA { |
| DWORD OperationCode; |
| DWORD OperationOption; |
| DWORD State; |
| NTMS_GUID PartitionId; |
| NTMS_GUID DriveId; |
| NTMS_GUID PhysMediaId; |
| NTMS_GUID Library; |
| NTMS_GUID SlotId; |
| SYSTEMTIME TimeQueued; |
| SYSTEMTIME TimeCompleted; |
| CHAR szApplication[NTMS_APPLICATIONNAME_LENGTH]; |
| CHAR szUser[NTMS_USERNAME_LENGTH]; |
| CHAR szComputer[NTMS_COMPUTERNAME_LENGTH]; |
| } NTMS_I1_LIBREQUESTINFORMATIONA; |
| |
| typedef struct _NTMS_I1_LIBREQUESTINFORMATIONW { |
| DWORD OperationCode; |
| DWORD OperationOption; |
| DWORD State; |
| NTMS_GUID PartitionId; |
| NTMS_GUID DriveId; |
| NTMS_GUID PhysMediaId; |
| NTMS_GUID Library; |
| NTMS_GUID SlotId; |
| SYSTEMTIME TimeQueued; |
| SYSTEMTIME TimeCompleted; |
| WCHAR szApplication[NTMS_APPLICATIONNAME_LENGTH]; |
| WCHAR szUser[NTMS_USERNAME_LENGTH]; |
| WCHAR szComputer[NTMS_COMPUTERNAME_LENGTH]; |
| } NTMS_I1_LIBREQUESTINFORMATIONW; |
| |
| typedef struct _NTMS_I1_PMIDINFORMATIONA { |
| NTMS_GUID CurrentLibrary; |
| NTMS_GUID MediaPool; |
| NTMS_GUID Location; |
| DWORD LocationType; |
| NTMS_GUID MediaType; |
| NTMS_GUID HomeSlot; |
| CHAR szBarCode[NTMS_BARCODE_LENGTH]; |
| DWORD BarCodeState; |
| CHAR szSequenceNumber[NTMS_SEQUENCE_LENGTH]; |
| DWORD MediaState; |
| DWORD dwNumberOfPartitions; |
| } NTMS_I1_PMIDINFORMATIONA; |
| |
| typedef struct _NTMS_I1_PMIDINFORMATIONW { |
| NTMS_GUID CurrentLibrary; |
| NTMS_GUID MediaPool; |
| NTMS_GUID Location; |
| DWORD LocationType; |
| NTMS_GUID MediaType; |
| NTMS_GUID HomeSlot; |
| WCHAR szBarCode[NTMS_BARCODE_LENGTH]; |
| DWORD BarCodeState; |
| WCHAR szSequenceNumber[NTMS_SEQUENCE_LENGTH]; |
| DWORD MediaState; |
| DWORD dwNumberOfPartitions; |
| } NTMS_I1_PMIDINFORMATIONW; |
| |
| typedef struct _NTMS_I1_PARTITIONINFORMATIONA { |
| NTMS_GUID PhysicalMedia; |
| NTMS_GUID LogicalMedia; |
| DWORD State; |
| WORD Side; |
| DWORD dwOmidLabelIdLength; |
| BYTE OmidLabelId[255]; |
| CHAR szOmidLabelType[64]; |
| CHAR szOmidLabelInfo[256]; |
| DWORD dwMountCount; |
| DWORD dwAllocateCount; |
| } NTMS_I1_PARTITIONINFORMATIONA; |
| |
| typedef struct _NTMS_I1_PARTITIONINFORMATIONW { |
| NTMS_GUID PhysicalMedia; |
| NTMS_GUID LogicalMedia; |
| DWORD State; |
| WORD Side; |
| DWORD dwOmidLabelIdLength; |
| BYTE OmidLabelId[255]; |
| WCHAR szOmidLabelType[64]; |
| WCHAR szOmidLabelInfo[256]; |
| DWORD dwMountCount; |
| DWORD dwAllocateCount; |
| } NTMS_I1_PARTITIONINFORMATIONW; |
| |
| typedef struct _NTMS_I1_OPREQUESTINFORMATIONA { |
| DWORD Request; |
| SYSTEMTIME Submitted; |
| DWORD State; |
| CHAR szMessage[NTMS_I1_MESSAGE_LENGTH]; |
| DWORD Arg1Type; |
| NTMS_GUID Arg1; |
| DWORD Arg2Type; |
| NTMS_GUID Arg2; |
| CHAR szApplication[NTMS_APPLICATIONNAME_LENGTH]; |
| CHAR szUser[NTMS_USERNAME_LENGTH]; |
| CHAR szComputer[NTMS_COMPUTERNAME_LENGTH]; |
| } NTMS_I1_OPREQUESTINFORMATIONA; |
| |
| typedef struct _NTMS_I1_OPREQUESTINFORMATIONW { |
| DWORD Request; |
| SYSTEMTIME Submitted; |
| DWORD State; |
| WCHAR szMessage[NTMS_I1_MESSAGE_LENGTH]; |
| DWORD Arg1Type; |
| NTMS_GUID Arg1; |
| DWORD Arg2Type; |
| NTMS_GUID Arg2; |
| WCHAR szApplication[NTMS_APPLICATIONNAME_LENGTH]; |
| WCHAR szUser[NTMS_USERNAME_LENGTH]; |
| WCHAR szComputer[NTMS_COMPUTERNAME_LENGTH]; |
| } NTMS_I1_OPREQUESTINFORMATIONW; |
| |
| typedef struct _NTMS_I1_OBJECTINFORMATIONA { |
| DWORD dwSize; |
| DWORD dwType; |
| SYSTEMTIME Created; |
| SYSTEMTIME Modified; |
| NTMS_GUID ObjectGuid; |
| WINBOOL Enabled; |
| DWORD dwOperationalState; |
| CHAR szName[NTMS_OBJECTNAME_LENGTH]; |
| CHAR szDescription[NTMS_DESCRIPTION_LENGTH]; |
| union { |
| NTMS_DRIVEINFORMATIONA Drive; |
| NTMS_DRIVETYPEINFORMATIONA DriveType; |
| NTMS_I1_LIBRARYINFORMATION Library; |
| NTMS_CHANGERINFORMATIONA Changer; |
| NTMS_CHANGERTYPEINFORMATIONA ChangerType; |
| NTMS_STORAGESLOTINFORMATION StorageSlot; |
| NTMS_IEDOORINFORMATION IEDoor; |
| NTMS_IEPORTINFORMATION IEPort; |
| NTMS_I1_PMIDINFORMATIONA PhysicalMedia; |
| NTMS_LMIDINFORMATION LogicalMedia; |
| NTMS_I1_PARTITIONINFORMATIONA Partition; |
| NTMS_MEDIAPOOLINFORMATION MediaPool; |
| NTMS_MEDIATYPEINFORMATION MediaType; |
| NTMS_I1_LIBREQUESTINFORMATIONA LibRequest; |
| NTMS_I1_OPREQUESTINFORMATIONA OpRequest; |
| } Info; |
| } NTMS_I1_OBJECTINFORMATIONA,*LPNTMS_I1_OBJECTINFORMATIONA; |
| |
| typedef struct _NTMS_I1_OBJECTINFORMATIONW { |
| DWORD dwSize; |
| DWORD dwType; |
| SYSTEMTIME Created; |
| SYSTEMTIME Modified; |
| NTMS_GUID ObjectGuid; |
| WINBOOL Enabled; |
| DWORD dwOperationalState; |
| WCHAR szName[NTMS_OBJECTNAME_LENGTH]; |
| WCHAR szDescription[NTMS_DESCRIPTION_LENGTH]; |
| union { |
| NTMS_DRIVEINFORMATIONW Drive; |
| NTMS_DRIVETYPEINFORMATIONW DriveType; |
| NTMS_I1_LIBRARYINFORMATION Library; |
| NTMS_CHANGERINFORMATIONW Changer; |
| NTMS_CHANGERTYPEINFORMATIONW ChangerType; |
| NTMS_STORAGESLOTINFORMATION StorageSlot; |
| NTMS_IEDOORINFORMATION IEDoor; |
| NTMS_IEPORTINFORMATION IEPort; |
| NTMS_I1_PMIDINFORMATIONW PhysicalMedia; |
| NTMS_LMIDINFORMATION LogicalMedia; |
| NTMS_I1_PARTITIONINFORMATIONW Partition; |
| NTMS_MEDIAPOOLINFORMATION MediaPool; |
| NTMS_MEDIATYPEINFORMATION MediaType; |
| NTMS_I1_LIBREQUESTINFORMATIONW LibRequest; |
| NTMS_I1_OPREQUESTINFORMATIONW OpRequest; |
| } Info; |
| } NTMS_I1_OBJECTINFORMATIONW,*LPNTMS_I1_OBJECTINFORMATIONW; |
| #endif |
| |
| #ifndef NTMS_NOREDEF |
| |
| enum NtmsCreateNtmsMediaOptions { |
| NTMS_ERROR_ON_DUPLICATE = 0x0001 |
| }; |
| #endif |
| |
| #ifdef PRE_SEVIL |
| DWORD WINAPI GetNtmsObjectInformation(HANDLE hSession,LPNTMS_GUID lpObjectId,LPNTMS_OBJECTINFORMATION lpInfo); |
| DWORD WINAPI SetNtmsObjectInformation(HANDLE hSession,LPNTMS_GUID lpObjectId,LPNTMS_OBJECTINFORMATION lpInfo); |
| #endif |
| DWORD WINAPI GetNtmsObjectInformationA(HANDLE hSession,LPNTMS_GUID lpObjectId,LPNTMS_OBJECTINFORMATIONA lpInfo); |
| DWORD WINAPI GetNtmsObjectInformationW(HANDLE hSession,LPNTMS_GUID lpObjectId,LPNTMS_OBJECTINFORMATIONW lpInfo); |
| DWORD WINAPI SetNtmsObjectInformationA(HANDLE hSession,LPNTMS_GUID lpObjectId,LPNTMS_OBJECTINFORMATIONA lpInfo); |
| DWORD WINAPI SetNtmsObjectInformationW(HANDLE hSession,LPNTMS_GUID lpObjectId,LPNTMS_OBJECTINFORMATIONW lpInfo); |
| DWORD WINAPI CreateNtmsMediaA(HANDLE hSession,LPNTMS_OBJECTINFORMATIONA lpMedia,LPNTMS_OBJECTINFORMATIONA lpList,DWORD dwOptions); |
| DWORD WINAPI CreateNtmsMediaW(HANDLE hSession,LPNTMS_OBJECTINFORMATIONW lpMedia,LPNTMS_OBJECTINFORMATIONW lpList,DWORD dwOptions); |
| enum NtmsEnumerateOption { |
| NTMS_ENUM_DEFAULT = 0,NTMS_ENUM_ROOTPOOL = 1 |
| }; |
| DWORD WINAPI EnumerateNtmsObject(HANDLE hSession,const LPNTMS_GUID lpContainerId,LPNTMS_GUID lpList,LPDWORD lpdwListSize,DWORD dwType,DWORD dwOptions); |
| DWORD WINAPI DisableNtmsObject(HANDLE hSession,DWORD dwType,LPNTMS_GUID lpObjectId); |
| DWORD WINAPI EnableNtmsObject(HANDLE hSession,DWORD dwType,LPNTMS_GUID lpObjectId); |
| enum NtmsEjectOperation { |
| 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 |
| }; |
| DWORD WINAPI EjectNtmsMedia(HANDLE hSession,LPNTMS_GUID lpMediaId,LPNTMS_GUID lpEjectOperation,DWORD dwAction); |
| enum NtmsInjectOperation { |
| NTMS_INJECT_START = 0,NTMS_INJECT_STOP = 1,NTMS_INJECT_RETRACT = 2,NTMS_INJECT_STARTMANY = 3 |
| }; |
| DWORD WINAPI InjectNtmsMedia(HANDLE hSession,LPNTMS_GUID lpLibraryId,LPNTMS_GUID lpInjectOperation,DWORD dwAction); |
| DWORD WINAPI AccessNtmsLibraryDoor(HANDLE hSession,LPNTMS_GUID lpLibraryId,DWORD dwAction); |
| DWORD WINAPI CleanNtmsDrive(HANDLE hSession,LPNTMS_GUID lpDriveId); |
| DWORD WINAPI DismountNtmsDrive(HANDLE hSession,LPNTMS_GUID lpDriveId); |
| DWORD WINAPI InventoryNtmsLibrary(HANDLE hSession,LPNTMS_GUID lpLibraryId,DWORD dwAction); |
| DWORD WINAPI IdentifyNtmsSlot(HANDLE hSession,LPNTMS_GUID lpSlotId,DWORD dwOption); |
| |
| #define NTMS_OMID_TYPE_RAW_LABEL 0x01 |
| #define NTMS_OMID_TYPE_FILESYSTEM_INFO 0x02 |
| |
| typedef struct { |
| WCHAR FileSystemType[64]; |
| WCHAR VolumeName[256]; |
| DWORD SerialNumber; |
| } NTMS_FILESYSTEM_INFO; |
| |
| DWORD WINAPI UpdateNtmsOmidInfo(HANDLE hSession,LPNTMS_GUID lpMediaId,DWORD labelType,DWORD numberOfBytes,LPVOID lpBuffer); |
| DWORD WINAPI CancelNtmsLibraryRequest(HANDLE hSession,LPNTMS_GUID lpRequestId); |
| DWORD WINAPI GetNtmsRequestOrder(HANDLE hSession,LPNTMS_GUID lpRequestId,LPDWORD lpdwOrderNumber); |
| DWORD WINAPI SetNtmsRequestOrder(HANDLE hSession,LPNTMS_GUID lpRequestId,DWORD dwOrderNumber); |
| DWORD WINAPI DeleteNtmsRequests(HANDLE hSession,LPNTMS_GUID lpRequestId,DWORD dwType,DWORD dwCount); |
| DWORD WINAPI ReserveNtmsCleanerSlot (HANDLE hSession,LPNTMS_GUID lpLibrary,LPNTMS_GUID lpSlot); |
| DWORD WINAPI ReleaseNtmsCleanerSlot (HANDLE hSession,LPNTMS_GUID lpLibrary); |
| DWORD WINAPI InjectNtmsCleaner (HANDLE hSession,LPNTMS_GUID lpLibrary,LPNTMS_GUID lpInjectOperation,DWORD dwNumberOfCleansLeft,DWORD dwAction); |
| DWORD WINAPI EjectNtmsCleaner (HANDLE hSession,LPNTMS_GUID lpLibrary,LPNTMS_GUID lpEjectOperation,DWORD dwAction); |
| DWORD WINAPI BeginNtmsDeviceChangeDetection(HANDLE hSession,LPHANDLE lpDetectHandle); |
| DWORD WINAPI SetNtmsDeviceChangeDetection(HANDLE hSession,HANDLE DetectHandle,LPNTMS_GUID lpRequestId,DWORD dwType,DWORD dwCount); |
| DWORD WINAPI EndNtmsDeviceChangeDetection(HANDLE hSession,HANDLE DetectHandle); |
| |
| #ifndef NTMS_NOREDEF |
| enum NtmsDriveType { |
| NTMS_UNKNOWN_DRIVE = 0 |
| }; |
| #endif |
| |
| DWORD WINAPI GetNtmsObjectSecurity(HANDLE hSession,LPNTMS_GUID lpObjectId,DWORD dwType,SECURITY_INFORMATION RequestedInformation,PSECURITY_DESCRIPTOR lpSecurityDescriptor,DWORD nLength,LPDWORD lpnLengthNeeded); |
| DWORD WINAPI SetNtmsObjectSecurity(HANDLE hSession,LPNTMS_GUID lpObjectId,DWORD dwType,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR lpSecurityDescriptor); |
| enum NtmsAccessMask { |
| NTMS_USE_ACCESS = 0x1, |
| NTMS_MODIFY_ACCESS = 0x2, |
| NTMS_CONTROL_ACCESS = 0x4 /* Hmm, could be 3, too. */ |
| }; |
| |
| #define NTMS_GENERIC_READ NTMS_USE_ACCESS |
| #define NTMS_GENERIC_WRITE NTMS_USE_ACCESS | NTMS_MODIFY_ACCESS |
| #define NTMS_GENERIC_EXECUTE NTMS_USE_ACCESS | NTMS_MODIFY_ACCESS | NTMS_CONTROL_ACCESS |
| #define NTMS_GENERIC_ALL NTMS_USE_ACCESS | NTMS_MODIFY_ACCESS | NTMS_CONTROL_ACCESS |
| |
| #define NTMS_MAXATTR_LENGTH 0x10000 |
| #define NTMS_MAXATTR_NAMELEN 32 |
| |
| DWORD WINAPI GetNtmsObjectAttributeA(HANDLE hSession,LPNTMS_GUID lpObjectId,DWORD dwType,LPCSTR lpAttributeName,LPVOID lpAttributeData,LPDWORD lpAttributeSize); |
| DWORD WINAPI GetNtmsObjectAttributeW(HANDLE hSession,LPNTMS_GUID lpObjectId,DWORD dwType,LPCWSTR lpAttributeName,LPVOID lpAttributeData,LPDWORD lpAttributeSize); |
| DWORD WINAPI SetNtmsObjectAttributeA(HANDLE hSession,LPNTMS_GUID lpObjectId,DWORD dwType,LPCSTR lpAttributeName,LPVOID lpAttributeData,DWORD dwAttributeSize); |
| DWORD WINAPI SetNtmsObjectAttributeW(HANDLE hSession,LPNTMS_GUID lpObjectId,DWORD dwType,LPCWSTR lpAttributeName,LPVOID lpAttributeData,DWORD AttributeSize); |
| |
| enum NtmsUITypes { |
| NTMS_UITYPE_INVALID = 0, |
| NTMS_UITYPE_INFO,NTMS_UITYPE_REQ,NTMS_UITYPE_ERR,NTMS_UITYPE_MAX |
| }; |
| |
| enum NtmsUIOperations { |
| NTMS_UIDEST_ADD = 1, |
| NTMS_UIDEST_DELETE,NTMS_UIDEST_DELETEALL, |
| NTMS_UIOPERATION_MAX |
| }; |
| |
| DWORD WINAPI GetNtmsUIOptionsA(HANDLE hSession,const LPNTMS_GUID lpObjectId,DWORD dwType,LPSTR lpszDestination,LPDWORD lpdwBufSize); |
| DWORD WINAPI GetNtmsUIOptionsW(HANDLE hSession,const LPNTMS_GUID lpObjectId,DWORD dwType,LPWSTR lpszDestination,LPDWORD lpdwBufSize); |
| DWORD WINAPI SetNtmsUIOptionsA(HANDLE hSession,const LPNTMS_GUID lpObjectId,DWORD dwType,DWORD dwOperation,LPCSTR lpszDestination); |
| DWORD WINAPI SetNtmsUIOptionsW(HANDLE hSession,const LPNTMS_GUID lpObjectId,DWORD dwType,DWORD dwOperation,LPCWSTR lpszDestination); |
| DWORD WINAPI SubmitNtmsOperatorRequestW(HANDLE hSession,DWORD dwRequest,LPCWSTR lpMessage,LPNTMS_GUID lpArg1Id,LPNTMS_GUID lpArg2Id,LPNTMS_GUID lpRequestId); |
| DWORD WINAPI SubmitNtmsOperatorRequestA(HANDLE hSession,DWORD dwRequest,LPCSTR lpMessage,LPNTMS_GUID lpArg1Id,LPNTMS_GUID lpArg2Id,LPNTMS_GUID lpRequestId); |
| DWORD WINAPI WaitForNtmsOperatorRequest(HANDLE hSession,LPNTMS_GUID lpRequestId,DWORD dwTimeout); |
| DWORD WINAPI CancelNtmsOperatorRequest(HANDLE hSession,LPNTMS_GUID lpRequestId); |
| DWORD WINAPI SatisfyNtmsOperatorRequest(HANDLE hSession,LPNTMS_GUID lpRequestId); |
| |
| #ifndef NTMS_NOREDEF |
| enum NtmsNotificationOperations { |
| NTMS_OBJ_UPDATE = 1, |
| NTMS_OBJ_INSERT,NTMS_OBJ_DELETE,NTMS_EVENT_SIGNAL,NTMS_EVENT_COMPLETE |
| }; |
| |
| typedef struct _NTMS_NOTIFICATIONINFORMATION { |
| DWORD dwOperation; |
| NTMS_GUID ObjectId; |
| } NTMS_NOTIFICATIONINFORMATION,*LPNTMS_NOTIFICATIONINFORMATION; |
| #endif |
| |
| DWORD WINAPI ImportNtmsDatabase(HANDLE hSession); |
| DWORD WINAPI ExportNtmsDatabase(HANDLE hSession); |
| DWORD WINAPI ImportNtmsDatabase(HANDLE hSession); |
| DWORD WINAPI ExportNtmsDatabase(HANDLE hSession); |
| HANDLE WINAPI OpenNtmsNotification(HANDLE hSession,DWORD dwType); |
| DWORD WINAPI WaitForNtmsNotification(HANDLE hNotification,LPNTMS_NOTIFICATIONINFORMATION lpNotificationInformation,DWORD dwTimeout); |
| DWORD WINAPI CloseNtmsNotification(HANDLE hNotification); |
| DWORD WINAPI EjectDiskFromSADriveW(LPCWSTR lpComputerName,LPCWSTR lpAppName,LPCWSTR lpDeviceName,HWND hWnd,LPCWSTR lpTitle,LPCWSTR lpMessage,DWORD dwOptions); |
| DWORD WINAPI EjectDiskFromSADriveA(LPCSTR lpComputerName,LPCSTR lpAppName,LPCSTR lpDeviceName,HWND hWnd,LPCSTR lpTitle,LPCSTR lpMessage,DWORD dwOptions); |
| DWORD WINAPI GetVolumesFromDriveW(LPWSTR pszDriveName,LPWSTR *VolumeNameBufferPtr,LPWSTR *DriveLetterBufferPtr); |
| DWORD WINAPI GetVolumesFromDriveA(LPSTR pszDriveName,LPSTR *VolumeNameBufferPtr,LPSTR *DriveLetterBufferPtr); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #pragma pack() |
| #endif |