13.07.2015 Views

[MS-VDS]: Virtual Disk Service (VDS) Protocol Specification

[MS-VDS]: Virtual Disk Service (VDS) Protocol Specification

[MS-VDS]: Virtual Disk Service (VDS) Protocol Specification

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

efore the method call returns to the client, the method will return an error code and MAY not returnthe IVdsAsync interface.If the task fails after the method call has returned to the client but before the task has completed,the IVdsAsync interface will return an error code and MAY not contain any other information.3.4.5.2 Message Processing DetailsBefore processing the methods that are listed in the following sections, the server SHOULD obtainidentity and authorization information about the client from the underlying DCOM or RPC runtime.The server does this in order to verify that the client has sufficient permissions to create, modify, ordelete the object as appropriate. These methods SHOULD impose an authorization policy decisionbefore performing the function. The suggested minimum requirement is that the caller haspermission to create, modify, or delete the object as appropriate.If any method is called before the server returns success from either theIVds<strong>Service</strong>::Is<strong>Service</strong>Ready (Opnum 3) method or the IVds<strong>Service</strong>::WaitFor<strong>Service</strong>Ready(Opnum 4) method, the <strong>VDS</strong>_E_INITIALIZED_FAILED value is returned.If parameter validation fails, the server MUST immediately fail the operation, returning a vendorspecificerror as its response to the client.3.4.5.2.1 IEnumVdsObject MethodsThe server MUST maintain the enumeration object until the client releases all references to theinterface.3.4.5.2.1.1 IEnumVdsObject::Next (Opnum 3)The Next method returns a specified number of objects in the enumeration. It begins from thecurrent point.[helpstring("method Next")] HRESULT Next([in] unsigned long celt,[out, size_is(celt), length_is(*pcFetched)]IUnknown** ppObjectArray,[out] unsigned long* pcFetched);celt: The number of elements to retrieve from the enumeration.ppObjectArray: A pointer to an array of IUnknown interfaces. The size of this array MUST beequal to celt. If successfully completed, it receives an array of the IUnknown interfaces of thenext objects in the enumeration; the number of elements in this array MUST be equal in sizeto the value of pcFetched. Callers MUST release each IUnknown interface that is received.pcFetched: A pointer to a variable that, upon successful completion, receives the number ofelements that are successfully received in ppObjectArray.Return Values: The method MUST return zero or a non-error HRESULT (as specified in [<strong>MS</strong>-ERREF]) to indicate success or return an implementation-specific nonzero error code toindicate failure. For the HRESULT values predefined by the <strong>Virtual</strong> <strong>Disk</strong> <strong>Service</strong> Remote<strong>Protocol</strong>, see section 2.2.3.[<strong>MS</strong>-<strong>VDS</strong>] — v20110610<strong>Virtual</strong> <strong>Disk</strong> <strong>Service</strong> (<strong>VDS</strong>) <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2011 Microsoft Corporation.Release: Friday, June 10, 2011167 / 360

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!