3.2.5.2.2.4 INtmsMediaServices1::DeallocateNtmsMedia (Opnum 7)

The DeallocateNtmsMedia method deallocates the side that is associated with a piece of logical media.

 HRESULT DeallocateNtmsMedia(
   [in] LPNTMS_GUID lpMediaId,
   [in] DWORD dwOptions
 );

lpMediaId: A pointer to the identifier of the logical media.

dwOptions: This parameter is unused. It MUST be sent as 0 and MUST be ignored on receipt.

Return value/code

Description

0x00000000

S_OK

The call was successful.

0x80070005

ERROR_ACCESS_DENIED

NTMS_MODIFY_ACCESS to the library is denied; other security errors are possible, but indicate a security subsystem error.

0x80070008

ERROR_NOT_ENOUGH_MEMORY

An allocation error occurred during processing.

0x80070057

ERROR_INVALID_PARAMETER

The media or media pool identifiers are missing.

0x800710D9

ERROR_DATABASE_FAILURE

The database is inaccessible or damaged.

0x800710DA

ERROR_DATABASE_FULL

The database is full.

Upon receiving this message, the server MUST verify that lpMediaId 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 verify that the user has the required access rights, and disassociate the logical media. If the client does not have the required access rights, the server MUST return ERROR_ACCESS_DENIED (0x80070005).

When a logical medium is deallocated with the DeallocateNtmsMedia method, the server puts the side that is associated with the logical media in the available or decommissioned media state, and the logical media is deleted from the system.

Sides are decommissioned upon deallocation if the side has been allocated the maximum number of times specified in the media pool. After media enters the decommissioned state, it cannot be allocated again.<31>