123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908 |
- /*++
- Copyright (c) Microsoft Corporation. All rights reserved
- Module Name:
- ntmsapi.h
- Abstract:
- This module contains the RSM API prototypes
- and public definitions supported in the API
- The RSM API provides a "C" interface to RSM
- This file can be included in C and C++ code
- This file's name is historical. RSM began
- life as NTMS
- --*/
- #ifndef _INCL_NTMSAPI_H_
- #define _INCL_NTMSAPI_H_
- #if _MSC_VER > 1000
- #pragma once
- #endif
- #pragma pack(8)
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef GUID NTMS_GUID;
- typedef GUID* LPNTMS_GUID;
- #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 unicode/ascii specific functions
- // This include functions that get strings
- //
- #ifdef UNICODE
- #define OpenNtmsSession OpenNtmsSessionW
- #define GetNtmsDeviceName GetNtmsDeviceNameW
- #define GetNtmsObjectInformation GetNtmsObjectInformationW
- #define SetNtmsObjectInformation SetNtmsObjectInformationW
- #define CreateNtmsMediaPool CreateNtmsMediaPoolW
- #define GetNtmsMediaPoolName GetNtmsMediaPoolNameW
- #define GetNtmsObjectAttribute GetNtmsObjectAttributeW
- #define SetNtmsObjectAttribute SetNtmsObjectAttributeW
- #define GetNtmsUIOptions GetNtmsUIOptionsW
- #define SetNtmsUIOptions SetNtmsUIOptionsW
- #define SubmitNtmsOperatorRequest SubmitNtmsOperatorRequestW
- #define CreateNtmsMedia CreateNtmsMediaW
- #define EjectDiskFromSADrive EjectDiskFromSADriveW
- #define GetVolumesFromDrive GetVolumesFromDriveW
- #else
- #define OpenNtmsSession OpenNtmsSessionA
- #define GetNtmsDeviceName GetNtmsDeviceNameA
- #define GetNtmsObjectInformation GetNtmsObjectInformationA
- #define SetNtmsObjectInformation SetNtmsObjectInformationA
- #define CreateNtmsMediaPool CreateNtmsMediaPoolA
- #define GetNtmsMediaPoolName GetNtmsMediaPoolNameA
- #define GetNtmsObjectAttribute GetNtmsObjectAttributeA
- #define SetNtmsObjectAttribute SetNtmsObjectAttributeA
- #define GetNtmsUIOptions GetNtmsUIOptionsA
- #define SetNtmsUIOptions SetNtmsUIOptionsA
- #define SubmitNtmsOperatorRequest SubmitNtmsOperatorRequestA
- #define CreateNtmsMedia CreateNtmsMediaA
- #define EjectDiskFromSADrive EjectDiskFromSADriveA
- #define GetVolumesFromDrive GetVolumesFromDriveA
- #endif
- #ifndef NTMS_NOREDEF
- // WARNING : The object types are provided as an ordered list of NTMS
- // database objects. Do NOT modify without also modifying the object
- // metadata table in dbobmeta.cpp
- 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
- };
- // async i/o defined for future implementation
- typedef struct _NTMS_ASYNC_IO {
- NTMS_GUID OperationId; // reserved - do not use
- NTMS_GUID EventId; // reserved - do not use
- DWORD dwOperationType; // reserved - do not use
- DWORD dwResult; // completion status
- DWORD dwAsyncState; // current state of request
- #ifdef MIDL_PASS
- NTMS_HANDLE hEvent;
- #else
- HANDLE hEvent; // event handle to signal on status change
- #endif // or request completion
- BOOL bOnStateChange; // indicate to signal on status change also
- } NTMS_ASYNC_IO, *LPNTMS_ASYNC_IO;
- enum NtmsAsyncStatus {
- NTMS_ASYNCSTATE_QUEUED = 0, // initial state is queued
- NTMS_ASYNCSTATE_WAIT_RESOURCE,
- NTMS_ASYNCSTATE_WAIT_OPERATOR,
- NTMS_ASYNCSTATE_INPROCESS,
- NTMS_ASYNCSTATE_COMPLETE // complete, check result code
- };
- enum NtmsAsyncOperations {
- NTMS_ASYNCOP_MOUNT = 1 // mount operation
- };
- #endif // NTMS_NOREDEF
- //=======================================================================
- // SESSION ESTABLISHMENT
- //=======================================================================
- #ifndef MIDL_PASS
- 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
- );
- #endif // MIDL_PASS
- #ifndef NTMS_NOREDEF
- //=======================================================================
- // MOUNT DEFINITIONS
- //=======================================================================
- 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; // size of structure
- #ifdef MIDL_PASS
- [ptr] LPNTMS_ASYNC_IO lpReserved;
- #else
- LPVOID lpReserved;
- #endif
- } NTMS_MOUNT_INFORMATION, *LPNTMS_MOUNT_INFORMATION;
- #endif // NTMS_NOREDEF
- //=======================================================================
- // MOUNT AND DISMOUNT APIS
- //=======================================================================
- #ifndef MIDL_PASS
- 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
- );
- #endif // MIDL_PASS
- #ifndef NTMS_NOREDEF
- //=======================================================================
- // ALLOCATE DEFINITIONS
- //=======================================================================
- enum NtmsAllocateOptions {
- NTMS_ALLOCATE_NEW = 0x0001,
- NTMS_ALLOCATE_NEXT = 0x0002,
- NTMS_ALLOCATE_ERROR_IF_UNAVAILABLE = 0x0004
- };
- typedef struct _NTMS_ALLOCATION_INFORMATION
- {
- DWORD dwSize; // size of structure
- #ifdef MIDL_PASS
- [ptr] LPNTMS_ASYNC_IO lpReserved; // future async io control
- #else
- LPVOID lpReserved;
- #endif
- NTMS_GUID AllocatedFrom; // original source of media (scratch pool, app pool, import etc).
- } NTMS_ALLOCATION_INFORMATION, *LPNTMS_ALLOCATION_INFORMATION;
- #endif
- //=======================================================================
- // ALLOCATE AND DEALLOCATE APIS
- //=======================================================================
- #ifndef MIDL_PASS
- DWORD WINAPI AllocateNtmsMedia(
- HANDLE hSession,
- LPNTMS_GUID lpMediaPool,
- LPNTMS_GUID lpPartition, // optional
- LPNTMS_GUID lpMediaId, // OUTPUT, media id or operator request id
- 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
- );
- //=======================================================================
- // MEDIA STATES
- //=======================================================================
- DWORD WINAPI DecommissionNtmsMedia(
- HANDLE hSession,
- LPNTMS_GUID lpMediaId
- );
- DWORD WINAPI SetNtmsMediaComplete(
- HANDLE hSession,
- LPNTMS_GUID lpMediaId
- );
- DWORD WINAPI DeleteNtmsMedia(
- HANDLE hSession,
- LPNTMS_GUID lpMediaId
- );
- #endif // MIDL_PASS
- #ifndef NTMS_NOREDEF
- //=======================================================================
- // MEDIA POOLS
- //=======================================================================
- enum NtmsCreateOptions {
- NTMS_OPEN_EXISTING = 0x0001,
- NTMS_CREATE_NEW = 0x0002,
- NTMS_OPEN_ALWAYS = 0x0003
- };
- #endif // NTMS_NOREDEF
- #ifndef MIDL_PASS
- #ifdef PRE_SEVIL
- DWORD WINAPI CreateNtmsMediaPool(
- HANDLE hSession,
- LPCTSTR lpPoolName,
- LPNTMS_GUID lpMediaType,
- DWORD dwAction,
- LPSECURITY_ATTRIBUTES lpSecurityAttributes,
- LPNTMS_GUID lpPoolId // OUT
- );
- #endif
- // SEVILIA
- DWORD WINAPI CreateNtmsMediaPoolA(
- HANDLE hSession,
- LPCSTR lpPoolName,
- LPNTMS_GUID lpMediaType,
- DWORD dwAction,
- LPSECURITY_ATTRIBUTES lpSecurityAttributes,
- LPNTMS_GUID lpPoolId // OUT
- );
- DWORD WINAPI CreateNtmsMediaPoolW(
- HANDLE hSession,
- LPCWSTR lpPoolName,
- LPNTMS_GUID lpMediaType,
- DWORD dwAction,
- LPSECURITY_ATTRIBUTES lpSecurityAttributes,
- LPNTMS_GUID lpPoolId // OUT
- );
- DWORD WINAPI GetNtmsMediaPoolNameA(
- HANDLE hSession,
- LPNTMS_GUID lpPoolId,
- LPSTR lpBufName,
- LPDWORD lpdwNameSize
- );
- DWORD WINAPI GetNtmsMediaPoolNameW(
- HANDLE hSession,
- LPNTMS_GUID lpPoolId,
- LPWSTR lpBufName,
- LPDWORD lpdwNameSize
- );
- 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
- );
- #endif // MIDL_PASS
- #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
- //======================================================================
- // OBJECT INFORMATION STRUCTURES
- //======================================================================
- 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
- };
- #ifdef UNICODE
- #define _NTMS_DRIVEINFORMATION _NTMS_DRIVEINFORMATIONW
- #define NTMS_DRIVEINFORMATION NTMS_DRIVEINFORMATIONW
- #else
- #define _NTMS_DRIVEINFORMATION _NTMS_DRIVEINFORMATIONA
- #define NTMS_DRIVEINFORMATION NTMS_DRIVEINFORMATIONA
- #endif
- 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
- };
- // library flags
- enum NtmsLibraryFlags {
- NTMS_LIBRARYFLAG_FIXEDOFFLINE = 0x01,
- NTMS_LIBRARYFLAG_CLEANERPRESENT = 0x02,
- NTMS_LIBRARYFLAG_AUTODETECTCHANGE = 0x04
- };
- 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;
- BOOL LibrarySupportsDriveCleaning;
- BOOL 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;
- BOOL AutoRecovery;
- DWORD dwFlags;
- } NTMS_LIBRARYINFORMATION;
- #ifdef UNICODE
- #define _NTMS_CHANGERINFORMATION _NTMS_CHANGERINFORMATIONW
- #define NTMS_CHANGERINFORMATION NTMS_CHANGERINFORMATIONW
- #else
- #define _NTMS_CHANGERINFORMATION _NTMS_CHANGERINFORMATIONA
- #define NTMS_CHANGERINFORMATION NTMS_CHANGERINFORMATIONA
- #endif
- 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 = 1,
- NTMS_MEDIASTATE_MOUNTED = 2,
- NTMS_MEDIASTATE_LOADED = 3,
- NTMS_MEDIASTATE_UNLOADED = 4,
- NTMS_MEDIASTATE_OPERROR = 5,
- // media is waiting for operator request servicing
- NTMS_MEDIASTATE_OPREQ = 6
- };
- #ifdef UNICODE
- #define _NTMS_PMIDINFORMATION _NTMS_PMIDINFORMATIONW
- #define NTMS_PMIDINFORMATION NTMS_PMIDINFORMATIONW
- #else
- #define _NTMS_PMIDINFORMATION _NTMS_PMIDINFORMATIONA
- #define NTMS_PMIDINFORMATION NTMS_PMIDINFORMATIONA
- #endif
- typedef struct _NTMS_PMIDINFORMATIONA {
- NTMS_GUID CurrentLibrary; // the current library
- NTMS_GUID MediaPool; // media pool that the media belongs to
- NTMS_GUID Location; // actual location of the media
- DWORD LocationType;
- NTMS_GUID MediaType;
- NTMS_GUID HomeSlot; // home slot for online media
- CHAR szBarCode[NTMS_BARCODE_LENGTH]; // bar code string
- DWORD BarCodeState; // current state of the bar code
- CHAR szSequenceNumber[NTMS_SEQUENCE_LENGTH];
- DWORD MediaState; // current media state
- DWORD dwNumberOfPartitions;
- DWORD dwMediaTypeCode;
- DWORD dwDensityCode;
- NTMS_GUID MountedPartition;
- } NTMS_PMIDINFORMATIONA;
- typedef struct _NTMS_PMIDINFORMATIONW {
- NTMS_GUID CurrentLibrary; // the current library
- NTMS_GUID MediaPool; // media pool that the media belongs to
- NTMS_GUID Location; // actual location of the media
- DWORD LocationType;
- NTMS_GUID MediaType;
- NTMS_GUID HomeSlot; // home slot for online media
- WCHAR szBarCode[NTMS_BARCODE_LENGTH]; // bar code string
- DWORD BarCodeState; // current state of the bar code
- WCHAR szSequenceNumber[NTMS_SEQUENCE_LENGTH];
- DWORD MediaState; // current media state
- 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 = 1,
- NTMS_PARTSTATE_INCOMPATIBLE = 2,
- NTMS_PARTSTATE_DECOMMISSIONED = 3,
- NTMS_PARTSTATE_AVAILABLE = 4,
- NTMS_PARTSTATE_ALLOCATED = 5,
- NTMS_PARTSTATE_COMPLETE = 6,
- NTMS_PARTSTATE_FOREIGN = 7,
- NTMS_PARTSTATE_IMPORT = 8,
- NTMS_PARTSTATE_RESERVED = 9
- };
- // define the new state as the unknown state for now.
- #define NTMS_PARTSTATE_NEW NTMS_PARTSTATE_UNKNOWN
- #ifdef UNICODE
- #define _NTMS_PARTITIONINFORMATION _NTMS_PARTITIONINFORMATIONW
- #define NTMS_PARTITIONINFORMATION NTMS_PARTITIONINFORMATIONW
- #else
- #define _NTMS_PARTITIONINFORMATION _NTMS_PARTITIONINFORMATIONA
- #define NTMS_PARTITIONINFORMATION NTMS_PARTITIONINFORMATIONA
- #endif
- typedef struct _NTMS_PARTITIONINFORMATIONA {
- NTMS_GUID PhysicalMedia;
- NTMS_GUID LogicalMedia;
- DWORD State;
- WORD Side;
- DWORD dwOmidLabelIdLength; // binary id
- BYTE OmidLabelId[NTMS_OMIDLABELID_LENGTH];
- CHAR szOmidLabelType[NTMS_OMIDLABELTYPE_LENGTH]; // type string
- CHAR szOmidLabelInfo[NTMS_OMIDLABELINFO_LENGTH]; // info string
- 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; // binary id
- BYTE OmidLabelId[NTMS_OMIDLABELID_LENGTH];
- WCHAR szOmidLabelType[NTMS_OMIDLABELTYPE_LENGTH]; // type string
- WCHAR szOmidLabelInfo[NTMS_OMIDLABELINFO_LENGTH]; // info string
- 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; // MediaTypeCodes
- DWORD NumberOfSides;
- DWORD ReadWriteCharacteristics;
- DWORD DeviceType;
- } NTMS_MEDIATYPEINFORMATION;
- #ifdef UNICODE
- #define _NTMS_DRIVETYPEINFORMATION _NTMS_DRIVETYPEINFORMATIONW
- #define NTMS_DRIVETYPEINFORMATION NTMS_DRIVETYPEINFORMATIONW
- #else
- #define _NTMS_DRIVETYPEINFORMATION _NTMS_DRIVETYPEINFORMATIONA
- #define NTMS_DRIVETYPEINFORMATION NTMS_DRIVETYPEINFORMATIONA
- #endif
- 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;
- #ifdef UNICODE
- #define _NTMS_CHANGERTYPEINFORMATION _NTMS_CHANGERTYPEINFORMATIONW
- #define NTMS_CHANGERTYPEINFORMATION NTMS_CHANGERTYPEINFORMATIONW
- #else
- #define _NTMS_CHANGERTYPEINFORMATION _NTMS_CHANGERTYPEINFORMATIONA
- #define NTMS_CHANGERTYPEINFORMATION NTMS_CHANGERTYPEINFORMATIONA
- #endif
- 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;
- //
- // Support both CHANGER & LIBRARY for (Dis/Enable) - backwards compatibility
- //
- 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, // DO NOT USE. Maintained for backward compatiblity
- NTMS_LM_CANCELLED = 7,
- NTMS_LM_STOPPED = 8
- };
- #ifdef UNICODE
- #define _NTMS_LIBREQUESTINFORMATION _NTMS_LIBREQUESTINFORMATIONW
- #define NTMS_LIBREQUESTINFORMATION NTMS_LIBREQUESTINFORMATIONW
- #else
- #define _NTMS_LIBREQUESTINFORMATION _NTMS_LIBREQUESTINFORMATIONA
- #define NTMS_LIBREQUESTINFORMATION NTMS_LIBREQUESTINFORMATIONA
- #endif
- 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; // error value if state = FAILED
- NTMS_GUID WorkItemId; // work item id for cancel and other requests that
- DWORD dwPriority; // require and associated work item
- } 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; // error value if state = FAILED
- NTMS_GUID WorkItemId; // work item id for cancel and other requests that
- DWORD dwPriority; // require and associated work item
- } NTMS_LIBREQUESTINFORMATIONW;
- enum NtmsOpreqCommand {
- NTMS_OPREQ_UNKNOWN = 0,
- NTMS_OPREQ_NEWMEDIA = 1,
- NTMS_OPREQ_CLEANER = 2,
- NTMS_OPREQ_DEVICESERVICE = 3,
- NTMS_OPREQ_MOVEMEDIA = 4,
- NTMS_OPREQ_MESSAGE = 5
- };
- enum NtmsOpreqState {
- NTMS_OPSTATE_UNKNOWN = 0,
- NTMS_OPSTATE_SUBMITTED = 1,
- NTMS_OPSTATE_ACTIVE = 2,
- NTMS_OPSTATE_INPROGRESS = 3,
- NTMS_OPSTATE_REFUSED = 4,
- NTMS_OPSTATE_COMPLETE = 5
- };
- #ifdef UNICODE
- #define _NTMS_OPREQUESTINFORMATION _NTMS_OPREQUESTINFORMATIONW
- #define NTMS_OPREQUESTINFORMATION NTMS_OPREQUESTINFORMATIONW
- #else
- #define _NTMS_OPREQUESTINFORMATION _NTMS_OPREQUESTINFORMATIONA
- #define NTMS_OPREQUESTINFORMATION NTMS_OPREQUESTINFORMATIONA
- #endif
- 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;
- // library request option flags
- enum NtmsLibRequestFlags {
- NTMS_LIBREQFLAGS_NOAUTOPURGE = 0x01,
- NTMS_LIBREQFLAGS_NOFAILEDPURGE = 0x02
- };
- // operator request option flags
- enum NtmsOpRequestFlags {
- NTMS_OPREQFLAGS_NOAUTOPURGE = 0x01,
- NTMS_OPREQFLAGS_NOFAILEDPURGE = 0x02,
- NTMS_OPREQFLAGS_NOALERTS = 0x10,
- NTMS_OPREQFLAGS_NOTRAYICON = 0x20
- };
- // media pool policy flags
- enum NtmsMediaPoolPolicy {
- // purge offline scratch media. By default we keep offline scratch media
- // in the fixed offline media pool
- NTMS_POOLPOLICY_PURGEOFFLINESCRATCH = 0x01,
- NTMS_POOLPOLICY_KEEPOFFLINEIMPORT = 0x02
- };
- #ifdef UNICODE
- #define _NTMS_OBJECTINFORMATION _NTMS_OBJECTINFORMATIONW
- #define NTMS_OBJECTINFORMATION NTMS_OBJECTINFORMATIONW
- #define LPNTMS_OBJECTINFORMATION LPNTMS_OBJECTINFORMATIONW
- #else
- #define _NTMS_OBJECTINFORMATION _NTMS_OBJECTINFORMATIONA
- #define NTMS_OBJECTINFORMATION NTMS_OBJECTINFORMATIONA
- #define LPNTMS_OBJECTINFORMATION LPNTMS_OBJECTINFORMATIONA
- #endif
- enum NtmsOperationalState {
- NTMS_READY = 0,
- NTMS_INITIALIZING = 10,
- NTMS_NEEDS_SERVICE = 20,
- NTMS_NOT_PRESENT = 21
- };
- typedef struct _NTMS_OBJECTINFORMATIONA {
- DWORD dwSize;
- DWORD dwType;
- SYSTEMTIME Created;
- SYSTEMTIME Modified;
- NTMS_GUID ObjectGuid;
- BOOL Enabled;
- DWORD dwOperationalState;
- CHAR szName[NTMS_OBJECTNAME_LENGTH];
- CHAR szDescription[NTMS_DESCRIPTION_LENGTH];
- #ifdef MIDL_PASS
- [switch_is(dwType)] union {
- [case(NTMS_DRIVE)] NTMS_DRIVEINFORMATIONA Drive;
- [case(NTMS_DRIVE_TYPE)] NTMS_DRIVETYPEINFORMATIONA DriveType;
- [case(NTMS_LIBRARY)] NTMS_LIBRARYINFORMATION Library;
- [case(NTMS_CHANGER)] NTMS_CHANGERINFORMATIONA Changer;
- [case(NTMS_CHANGER_TYPE)] NTMS_CHANGERTYPEINFORMATIONA ChangerType;
- [case(NTMS_STORAGESLOT)] NTMS_STORAGESLOTINFORMATION StorageSlot;
- [case(NTMS_IEDOOR)] NTMS_IEDOORINFORMATION IEDoor;
- [case(NTMS_IEPORT)] NTMS_IEPORTINFORMATION IEPort;
- [case(NTMS_PHYSICAL_MEDIA)] NTMS_PMIDINFORMATIONA PhysicalMedia;
- [case(NTMS_LOGICAL_MEDIA)] NTMS_LMIDINFORMATION LogicalMedia;
- [case(NTMS_PARTITION)] NTMS_PARTITIONINFORMATIONA Partition;
- [case(NTMS_MEDIA_POOL)] NTMS_MEDIAPOOLINFORMATION MediaPool;
- [case(NTMS_MEDIA_TYPE)] NTMS_MEDIATYPEINFORMATION MediaType;
- [case(NTMS_LIBREQUEST)] NTMS_LIBREQUESTINFORMATIONA LibRequest;
- [case(NTMS_OPREQUEST)] NTMS_OPREQUESTINFORMATIONA OpRequest;
- [case(NTMS_COMPUTER)] NTMS_COMPUTERINFORMATION Computer;
- [default] ;
- } Info;
- #else
- 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;
- #endif // MIDL_PASS
- } NTMS_OBJECTINFORMATIONA, *LPNTMS_OBJECTINFORMATIONA;
- typedef struct _NTMS_OBJECTINFORMATIONW {
- DWORD dwSize;
- DWORD dwType;
- SYSTEMTIME Created;
- SYSTEMTIME Modified;
- NTMS_GUID ObjectGuid;
- BOOL Enabled;
- DWORD dwOperationalState;
- WCHAR szName[NTMS_OBJECTNAME_LENGTH];
- WCHAR szDescription[NTMS_DESCRIPTION_LENGTH];
- #ifdef MIDL_PASS
- [switch_is(dwType)] union {
- [case(NTMS_DRIVE)] NTMS_DRIVEINFORMATIONW Drive;
- [case(NTMS_DRIVE_TYPE)] NTMS_DRIVETYPEINFORMATIONW DriveType;
- [case(NTMS_LIBRARY)] NTMS_LIBRARYINFORMATION Library;
- [case(NTMS_CHANGER)] NTMS_CHANGERINFORMATIONW Changer;
- [case(NTMS_CHANGER_TYPE)] NTMS_CHANGERTYPEINFORMATIONW ChangerType;
- [case(NTMS_STORAGESLOT)] NTMS_STORAGESLOTINFORMATION StorageSlot;
- [case(NTMS_IEDOOR)] NTMS_IEDOORINFORMATION IEDoor;
- [case(NTMS_IEPORT)] NTMS_IEPORTINFORMATION IEPort;
- [case(NTMS_PHYSICAL_MEDIA)] NTMS_PMIDINFORMATIONW PhysicalMedia;
- [case(NTMS_LOGICAL_MEDIA)] NTMS_LMIDINFORMATION LogicalMedia;
- [case(NTMS_PARTITION)] NTMS_PARTITIONINFORMATIONW Partition;
- [case(NTMS_MEDIA_POOL)] NTMS_MEDIAPOOLINFORMATION MediaPool;
- [case(NTMS_MEDIA_TYPE)] NTMS_MEDIATYPEINFORMATION MediaType;
- [case(NTMS_LIBREQUEST)] NTMS_LIBREQUESTINFORMATIONW LibRequest;
- [case(NTMS_OPREQUEST)] NTMS_OPREQUESTINFORMATIONW OpRequest;
- [case(NTMS_COMPUTER)] NTMS_COMPUTERINFORMATION Computer;
- [default] ;
- } Info;
- #else
- 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;
- #endif // MIDL_PASS
- } NTMS_OBJECTINFORMATIONW, *LPNTMS_OBJECTINFORMATIONW;
- //********************************************************************************
- // NT 5.0 BETA1 variations of object information. Required to keep here for
- // backward compatibility in DCOM interface.
- // Different data structures add the _I1_ to the structure name, denoting
- // used for Interface 1 only.
- // DO NOT MODIFY IN FUTURE VERSIONS !!
- //********************************************************************************
- #ifdef UNICODE
- #define NTMS_I1_LIBREQUESTINFORMATION NTMS_I1_LIBREQUESTINFORMATIONW
- #define NTMS_I1_PARTITIONINFORMATION NTMS_I1_PARTITIONINFORMATIONW
- #define NTMS_I1_PMIDINFORMATION NTMS_I1_PMIDINFORMATIONW
- #define NTMS_I1_OPREQUESTINFORMATION NTMS_I1_OPREQUESTINFORMATIONW
- #define NTMS_I1_OBJECTINFORMATION NTMS_I1_OBJECTINFORMATIONW
- #else
- #define NTMS_I1_LIBREQUESTINFORMATION NTMS_I1_LIBREQUESTINFORMATIONA
- #define NTMS_I1_PARTITIONINFORMATION NTMS_I1_PARTITIONINFORMATIONA
- #define NTMS_I1_PMIDINFORMATION NTMS_I1_PMIDINFORMATIONA
- #define NTMS_I1_OPREQUESTINFORMATION NTMS_I1_OPREQUESTINFORMATIONA
- #define NTMS_I1_OBJECTINFORMATION NTMS_I1_OBJECTINFORMATIONA
- #endif
- typedef struct _NTMS_I1_LIBRARYINFORMATION {
- DWORD LibraryType;
- NTMS_GUID CleanerSlot;
- NTMS_GUID CleanerSlotDefault;
- BOOL LibrarySupportsDriveCleaning;
- BOOL 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; // the current library
- NTMS_GUID MediaPool; // media pool that the media belongs to
- NTMS_GUID Location; // actual location of the media
- DWORD LocationType;
- NTMS_GUID MediaType;
- NTMS_GUID HomeSlot; // home slot for online media
- CHAR szBarCode[NTMS_BARCODE_LENGTH]; // bar code string
- DWORD BarCodeState; // current state of the bar code
- CHAR szSequenceNumber[NTMS_SEQUENCE_LENGTH];
- DWORD MediaState; // current media state
- DWORD dwNumberOfPartitions;
- } NTMS_I1_PMIDINFORMATIONA;
- typedef struct _NTMS_I1_PMIDINFORMATIONW {
- NTMS_GUID CurrentLibrary; // the current library
- NTMS_GUID MediaPool; // media pool that the media belongs to
- NTMS_GUID Location; // actual location of the media
- DWORD LocationType;
- NTMS_GUID MediaType;
- NTMS_GUID HomeSlot; // home slot for online media
- WCHAR szBarCode[NTMS_BARCODE_LENGTH]; // bar code string
- DWORD BarCodeState; // current state of the bar code
- WCHAR szSequenceNumber[NTMS_SEQUENCE_LENGTH];
- DWORD MediaState; // current media state
- DWORD dwNumberOfPartitions;
- } NTMS_I1_PMIDINFORMATIONW;
- typedef struct _NTMS_I1_PARTITIONINFORMATIONA {
- NTMS_GUID PhysicalMedia;
- NTMS_GUID LogicalMedia;
- DWORD State;
- WORD Side;
- DWORD dwOmidLabelIdLength; // binary id
- BYTE OmidLabelId[255];
- CHAR szOmidLabelType[64]; // type string
- CHAR szOmidLabelInfo[256]; // info string
- DWORD dwMountCount;
- DWORD dwAllocateCount;
- } NTMS_I1_PARTITIONINFORMATIONA;
- typedef struct _NTMS_I1_PARTITIONINFORMATIONW {
- NTMS_GUID PhysicalMedia;
- NTMS_GUID LogicalMedia;
- DWORD State;
- WORD Side;
- DWORD dwOmidLabelIdLength; // binary id
- BYTE OmidLabelId[255];
- WCHAR szOmidLabelType[64]; // type string
- WCHAR szOmidLabelInfo[256]; // info string
- 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;
- BOOL Enabled;
- DWORD dwOperationalState;
- CHAR szName[NTMS_OBJECTNAME_LENGTH];
- CHAR szDescription[NTMS_DESCRIPTION_LENGTH];
- #ifdef MIDL_PASS
- [switch_is(dwType)] union {
- [case(NTMS_DRIVE)] NTMS_DRIVEINFORMATIONA Drive;
- [case(NTMS_DRIVE_TYPE)] NTMS_DRIVETYPEINFORMATIONA DriveType;
- [case(NTMS_LIBRARY)] NTMS_I1_LIBRARYINFORMATION Library;
- [case(NTMS_CHANGER)] NTMS_CHANGERINFORMATIONA Changer;
- [case(NTMS_CHANGER_TYPE)] NTMS_CHANGERTYPEINFORMATIONA ChangerType;
- [case(NTMS_STORAGESLOT)] NTMS_STORAGESLOTINFORMATION StorageSlot;
- [case(NTMS_IEDOOR)] NTMS_IEDOORINFORMATION IEDoor;
- [case(NTMS_IEPORT)] NTMS_IEPORTINFORMATION IEPort;
- [case(NTMS_PHYSICAL_MEDIA)] NTMS_I1_PMIDINFORMATIONA PhysicalMedia;
- [case(NTMS_LOGICAL_MEDIA)] NTMS_LMIDINFORMATION LogicalMedia;
- [case(NTMS_PARTITION)] NTMS_I1_PARTITIONINFORMATIONA Partition;
- [case(NTMS_MEDIA_POOL)] NTMS_MEDIAPOOLINFORMATION MediaPool;
- [case(NTMS_MEDIA_TYPE)] NTMS_MEDIATYPEINFORMATION MediaType;
- [case(NTMS_LIBREQUEST)] NTMS_I1_LIBREQUESTINFORMATIONA LibRequest;
- [case(NTMS_OPREQUEST)] NTMS_I1_OPREQUESTINFORMATIONA OpRequest;
- [default] ;
- } Info;
- #else
- 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;
- #endif // MIDL_PASS
- } NTMS_I1_OBJECTINFORMATIONA, *LPNTMS_I1_OBJECTINFORMATIONA;
- typedef struct _NTMS_I1_OBJECTINFORMATIONW {
- DWORD dwSize;
- DWORD dwType;
- SYSTEMTIME Created;
- SYSTEMTIME Modified;
- NTMS_GUID ObjectGuid;
- BOOL Enabled;
- DWORD dwOperationalState;
- WCHAR szName[NTMS_OBJECTNAME_LENGTH];
- WCHAR szDescription[NTMS_DESCRIPTION_LENGTH];
- #ifdef MIDL_PASS
- [switch_is(dwType)] union {
- [case(NTMS_DRIVE)] NTMS_DRIVEINFORMATIONW Drive;
- [case(NTMS_DRIVE_TYPE)] NTMS_DRIVETYPEINFORMATIONW DriveType;
- [case(NTMS_LIBRARY)] NTMS_I1_LIBRARYINFORMATION Library;
- [case(NTMS_CHANGER)] NTMS_CHANGERINFORMATIONW Changer;
- [case(NTMS_CHANGER_TYPE)] NTMS_CHANGERTYPEINFORMATIONW ChangerType;
- [case(NTMS_STORAGESLOT)] NTMS_STORAGESLOTINFORMATION StorageSlot;
- [case(NTMS_IEDOOR)] NTMS_IEDOORINFORMATION IEDoor;
- [case(NTMS_IEPORT)] NTMS_IEPORTINFORMATION IEPort;
- [case(NTMS_PHYSICAL_MEDIA)] NTMS_I1_PMIDINFORMATIONW PhysicalMedia;
- [case(NTMS_LOGICAL_MEDIA)] NTMS_LMIDINFORMATION LogicalMedia;
- [case(NTMS_PARTITION)] NTMS_I1_PARTITIONINFORMATIONW Partition;
- [case(NTMS_MEDIA_POOL)] NTMS_MEDIAPOOLINFORMATION MediaPool;
- [case(NTMS_MEDIA_TYPE)] NTMS_MEDIATYPEINFORMATION MediaType;
- [case(NTMS_LIBREQUEST)] NTMS_I1_LIBREQUESTINFORMATIONW LibRequest;
- [case(NTMS_OPREQUEST)] NTMS_I1_OPREQUESTINFORMATIONW OpRequest;
- [default] ;
- } Info;
- #else
- 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;
- #endif // MIDL_PASS
- } NTMS_I1_OBJECTINFORMATIONW, *LPNTMS_I1_OBJECTINFORMATIONW;
- #endif // NTMS_NOREDEF
- #ifndef NTMS_NOREDEF
- //=======================================================================
- // CREATENTMSMEDIA DEFINITIONS
- //=======================================================================
- enum NtmsCreateNtmsMediaOptions {
- NTMS_ERROR_ON_DUPLICATE = 0x0001
- };
- #endif
- #ifndef MIDL_PASS
- //======================================================================
- // OBJECT MANAGEMENT APIS
- //======================================================================
- #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
- // Added by SEvilia
- 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
- );
- // END of SEVILIA
- 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
- ) ;
- 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
- );
- // definitions for the UpdateNtmsOmidInfo ...
- #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
- );
- #endif // MIDL_PASS
- #ifndef NTMS_NOREDEF
- enum NtmsDriveType {
- NTMS_UNKNOWN_DRIVE = 0
- };
- #endif // NTMS_NOREDEF
- #ifndef MIDL_PASS
- // Security for NTMS API
- 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
- );
- // Security Access Control Masks :
- // NTMS_USE_ACCESS is required to use an NTMS object. For example,
- // you will need this access to a library in order to mount media
- // within it.
- // NTMS_MODIFY_ACCESS is required to make changes to an NTMS object.
- // For example, you will need modify access in order to change the name
- // of an object or change its attributes.
- // NTMS_CONTROL_ACCESS is required to control an NTMS object. For
- // example, you will need control access to a library in order to
- // inject media, eject media, clean or open the door.
- //
- enum NtmsAccessMask {
- NTMS_USE_ACCESS = 0x1,
- NTMS_MODIFY_ACCESS = 0x2,
- NTMS_CONTROL_ACCESS = 0x4
- };
- // Generic Mappings :
- #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
- // Maximum attribute size for NTMS Object attribute API's
- #define NTMS_MAXATTR_LENGTH 0x10000
- // Maximum len of attribute name (# of chars.)
- #define NTMS_MAXATTR_NAMELEN 32
- // Object extensions for NTMS API
- 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
- );
- //UI Notification
- 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 lpAttributeSize
- );
- DWORD WINAPI GetNtmsUIOptionsW(
- HANDLE hSession,
- const LPNTMS_GUID lpObjectId,
- DWORD dwType,
- LPWSTR lpszDestination,
- LPDWORD lpdwSize
- );
- 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
- );
- // Operator Requests
- 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
- );
- #endif // MIDL_PASS
- #ifndef NTMS_NOREDEF
- enum NtmsNotificationOperations {
- NTMS_OBJ_UPDATE = 1,
- NTMS_OBJ_INSERT = 2,
- NTMS_OBJ_DELETE = 3,
- NTMS_EVENT_SIGNAL = 4,
- NTMS_EVENT_COMPLETE = 5
- };
- // object notification
- typedef struct _NTMS_NOTIFICATIONINFORMATION {
- DWORD dwOperation;
- NTMS_GUID ObjectId;
- } NTMS_NOTIFICATIONINFORMATION, *LPNTMS_NOTIFICATIONINFORMATION;
- #endif // NTMS_NOREDEF
- #ifndef MIDL_PASS
- DWORD WINAPI ImportNtmsDatabase(
- HANDLE hSession
- );
- DWORD WINAPI ExportNtmsDatabase(
- HANDLE hSession
- );
- #endif // MIDL_PASS
- #ifndef MIDL_PASS
- DWORD WINAPI ImportNtmsDatabase(
- HANDLE hSession
- );
- DWORD WINAPI ExportNtmsDatabase(
- HANDLE hSession
- );
- #endif // MIDL_PASS
- #ifndef MIDL_PASS
- HANDLE WINAPI OpenNtmsNotification(
- HANDLE hSession,
- DWORD dwType
- );
- DWORD WINAPI WaitForNtmsNotification(
- HANDLE hNotification,
- LPNTMS_NOTIFICATIONINFORMATION lpNotificationInformation,
- DWORD dwTimeout
- );
- DWORD WINAPI CloseNtmsNotification(
- HANDLE hNotification
- );
- #endif // MIDL_PASS
- #ifndef MIDL_PASS
- 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
- );
- #endif
- #ifndef MIDL_PASS
- DWORD WINAPI GetVolumesFromDriveW(
- LPWSTR pszDriveName,
- LPWSTR *VolumeNameBufferPtr,
- LPWSTR *DriveLetterBufferPtr
- );
- DWORD WINAPI GetVolumesFromDriveA(
- LPSTR pszDriveName,
- LPSTR* VolumeNameBufferPtr,
- LPSTR* DriveLetterBufferPtr
- );
- #endif
- #ifdef __cplusplus
- } // end extern "C"
- #endif
- #pragma pack()
- #endif // _INCL_NTMSAPI_H_
|