📄 ntmsapi.h
字号:
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
};
#define NTMS_BARCODE_LENGTH 64
#define NTMS_SEQUENCE_LENGTH 32
#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;
} 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[32];
DWORD MediaState; // current media state
DWORD dwNumberOfPartitions;
} 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[255];
CHAR szOmidLabelType[64]; // type string
CHAR szOmidLabelInfo[256]; // info string
DWORD dwMountCount;
DWORD dwAllocateCount;
} NTMS_PARTITIONINFORMATIONA;
typedef struct _NTMS_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_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
};
#define NTMS_VENDORNAME_LENGTH 32
#define NTMS_PRODUCTNAME_LENGTH 32
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;
#define NTMS_USERNAME_LENGTH 64
#define NTMS_APPLICATIONNAME_LENGTH 64
#define NTMS_COMPUTERNAME_LENGTH 64
enum NtmsLmOperation {
NTMS_LM_REMOVE = 0,
NTMS_LM_DISABLECHANGER = 1,
NTMS_LM_ENABLECHANGER = 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_DEFFERED = 6,
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];
} 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];
} NTMS_LIBREQUESTINFORMATIONW;
#define NTMS_MESSAGE_LENGTH 127
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;
#define NTMS_OBJECTNAME_LENGTH 64
#define NTMS_DESCRIPTION_LENGTH 127
#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_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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -