3.2.5.2.1.13 INtmsLibraryControl1::DeleteNtmsDrive (Opnum 16)
The DeleteNtmsDrive method deletes a drive.
-
HRESULT DeleteNtmsDrive( [in] LPNTMS_GUID lpDriveId );
lpDriveId: A pointer to the identifier of the drive to delete.
-
Return value/code
Description
0x00000000
S_OK
The call was successful.
0x80070005
ERROR_ACCESS_DENIED
Access to an object was denied.
0x8007000F
ERROR_INVALID_DRIVE
The drive identifier is not valid.
0x80070057
ERROR_INVALID_PARAMETER
A parameter is not valid.
0x800710CD
ERROR_INVALID_LIBRARY
The library identifier is not valid.
0x800710D9
ERROR_DATABASE_FAILURE
The database query or update failed.
0x800710DA
ERROR_DATABASE_FULL
The database is full.
0x8007139F
ERROR_INVALID_STATE
An unexpected state was encountered.
Upon receiving this message, the server MUST verify that lpDriveId is not NULL. If it is NULL, the server MUST immediately fail the operation and return ERROR_INVALID_PARAMETER (0x80070057).
If parameter validation succeeds, the server MUST check access rights to the library and verify that the library is enabled and offline before further processing. If the client does not have the required access rights, NTMS_MODIFY_ACCESS to the library is denied, and the server MUST return ERROR_ACCESS_DENIED (0x80070005). Other security errors are possible but indicate a security subsystem error. If the library is disabled or online, the server MUST return ERROR_INVALID_STATE (0x8007139F).
If this drive belongs to a standalone library (that is, the number of slots in the library is zero) the server MUST delete the library, thereby leaving the media, drive and library objects in a state that is consistent with the physical state.
The DeleteNtmsDrive method deletes a drive from the RSM database. If the drive is not a standalone drive, then the drive MUST have dwOperationalState set to NTMS_NOT_PRESENT. If the drive does not have dwOperationalState set to NTMS_NOT_PRESENT, the server MUST fail the operation and return ERROR_INVALID_STATE (0x8007139F).