Skip to content

Latest commit

 

History

History
154 lines (121 loc) · 5.74 KB

nf-vdshwprv-ivdslun-delete.md

File metadata and controls

154 lines (121 loc) · 5.74 KB
UID title description helpviewer_keywords old-location tech.root ms.assetid ms.date ms.keywords req.header req.include-header req.target-type req.target-min-winverclnt req.target-min-winversvr req.kmdf-ver req.umdf-ver req.ddi-compliance req.unicode-ansi req.idl req.max-support req.namespace req.assembly req.type-library req.lib req.dll req.irql targetos req.typenames req.redist ms.custom f1_keywords dev_langs topic_type api_type api_location api_name
NF:vdshwprv.IVdsLun.Delete
IVdsLun::Delete (vdshwprv.h)
The IVdsLun::Delete (vdshwprv.h) method deletes the LUN and all of its plexes. Any data on the LUN is lost. VDS frees the extents allocated to the LUN.
Delete
Delete method [VDS]
Delete method [VDS]
IVdsLun interface
IVdsLun interface [VDS]
Delete method
IVdsLun.Delete
IVdsLun::Delete
base.ivdslun_delete
vds/IVdsLun::Delete
vdshwprv/IVdsLun::Delete
base\ivdslun_delete.htm
base
21522c62-0b60-4c70-b2bd-7a33aa94d280
08/08/2022
Delete, Delete method [VDS], Delete method [VDS],IVdsLun interface, IVdsLun interface [VDS],Delete method, IVdsLun.Delete, IVdsLun::Delete, base.ivdslun_delete, vds/IVdsLun::Delete, vdshwprv/IVdsLun::Delete
vdshwprv.h
Windows
Windows Vista [desktop apps only]
Windows Server 2003 [desktop apps only]
Uuid.lib
Windows
19H1
IVdsLun::Delete
vdshwprv/IVdsLun::Delete
c++
APIRef
kbSyntax
COM
Uuid.lib
Uuid.dll
IVdsLun.Delete

IVdsLun::Delete

-description

[Beginning with Windows 8 and Windows Server 2012, the Virtual Disk Service COM interface is superseded by the Windows Storage Management API.]

Deletes the LUN and all of its plexes. Any data on the LUN is lost. VDS frees the extents allocated to the LUN.

-returns

This method can return standard HRESULT values, such as E_OUTOFMEMORY, and VDS-specific return values. It can also return converted system error codes using the HRESULT_FROM_WIN32 macro. Errors can originate from VDS itself or from the underlying VDS provider that is being used. Possible return values include the following.

Return code/value Description
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
This return value signals a software or communication problem inside a provider that caches information about the array. Use the IVdsHwProvider::Reenumerate method followed by the IVdsHwProvider::Refresh method to restore the cache.
VDS_E_OBJECT_DELETED
0x8004240BL
The LUN object is no longer present.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
The LUN is in a failed state and is unable to perform the requested operation.
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
Another operation is in progress; this operation cannot proceed until the previous operation or operations are complete.

-remarks

If an application holds a reference to the IVdsLun interface and calls IVdsLun::Delete, implementers should return VDS_E_OBJECT_DELETED on subsequent calls to methods such as GetProperties on that interface. In this case, the interface has an outstanding reference and is valid, but the underlying object no longer exists.

If a LUN that is unmasked to a target machine is deleted, the LUN's visibility on that machine may not change until a bus rescan is performed. The VDS application on the target machine initiates the bus rescan by calling IVdsService::Reenumerate. The initiating of the bus rescan is the responsibility of the VDS application, not the hardware provider.

If a method such as IVdsLun::Delete is called in one thread while IVdsSubSystem::QueryLuns is called in another thread that is running simultaneously, the result could be a provider access violation. The hardware provider is responsible for serializing these methods as needed to minimize such synchronization issues.

The hardware provider is responsible for removing the LUN's partition information so that the LUN can be reused. If the LUN is an MBR disk, this is accomplished by writing zeros to the first and last 1 MB of the disk. For a GPT disk, zeros must be written to the first and last 16 KB of the disk.

-see-also

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsLun

IVdsLun::GetProperties