Share via


IMDSPObject::Read (deprecated)

banner art

This is preliminary documentation and subject to change.

This topic documents a feature of the Windows Media Device Manager SDK. We recommend that you migrate your application to use the Windows Portable Devices API. For more information, see the Windows Portable Devices SDK.

The Read method reads data from the object at the current position. This operation is valid only if the storage object represents a file.

Syntax

HRESULT Read(
  BYTE*  pData,
  DWORD*  pdwSize,
  BYTE  abMac[WMDM_MAC_LENGTH]
);

Parameters

pData

[out]  Pointer to a buffer to receive the data read from the object. This parameter is included in the output message authentication code and must be encrypted using CSecureChannelServer::EncryptParam. See Remarks.

pdwSize

[in, out]  Pointer to a DWORD specifying the number of bytes of data to read. Upon return, this parameter contains the actual amount of data read*.* This parameter must be included in the input message authentication code.

abMac[WMDM_MAC_LENGTH]

[in, out]  Array of eight bytes containing the message authentication code for the parameter data of this method. (WMDM_MAC_LENGTH is defined as 8.)

Return Values

The method returns an HRESULT. All the interface methods in Windows Media Device Manager can return any of the following classes of error codes:

  • Standard COM error codes
  • Windows error codes converted to HRESULT values
  • Windows Media Device Manager error codes

For an extenstive list of possible error codes, see Error Codes.

Possible values include, but are not limited to, those in the following table.

Return code Description
S_OK The method succeeded.
WMDM_E_BUSY The media device is busy.
WMDM_E_INTERFACEDEAD The file or folder was previously deleted.
WMDM_E_CALL_OUT_OF_SEQUENCE Open was not called before calling Read.
E_INVALIDARG A parameter is an invalid or NULL pointer.
E_FAIL An unspecified error occurred.

Remarks

The MAC used for encryption should include both pData and pdwSize in calls to CSecureChannelServer::MACUpdate.

This method is optional. For more information, see Mandatory and Optional Interfaces.

Requirements

Header: Defined in mswmdm.h.

Library: mssachlp.lib

See Also