Compartir a través de


Método IMDSPStorage4::CreateStorageWithMetadata (mswmdm.h)

El método CreateStorageWithMetadata crea un nuevo almacenamiento, aplicando los metadatos especificados al nuevo almacenamiento y devuelve un puntero a la interfaz IMDSPStorage en el almacenamiento recién creado. El nuevo almacenamiento se puede crear en el mismo nivel o se puede insertar en el almacenamiento actual.

Este método es útil si el dispositivo necesita metadatos en el momento de la creación. Dependiendo del dispositivo, también puede ser más eficaz aplicar metadatos en el momento de la creación, en lugar de crear el almacenamiento y, a continuación, establecer metadatos.

Sintaxis

HRESULT CreateStorageWithMetadata(
  [in]  DWORD         dwAttributes,
  [in]  LPCWSTR       pwszName,
  [in]  IWMDMMetaData *pMetadata,
  [in]  ULONGLONG     qwFileSize,
  [out] IMDSPStorage  **ppNewStorage
);

Parámetros

[in] dwAttributes

DWORD que contiene atributos para el nuevo almacenamiento. En la tabla siguiente se enumeran los atributos de almacenamiento disponibles.

Atributo Descripción
WMDM_STORAGECONTROL_INSERTBEFORE El nuevo objeto de almacenamiento se creará delante del objeto de destino.
WMDM_STORAGECONTROL_INSERTAFTER El nuevo objeto de almacenamiento se creará después del objeto de destino.
WMDM_STORAGECONTROL_INSERTINTO El nuevo objeto de almacenamiento se creará en la carpeta de objetos de destino.
WMDM_STORAGECONTROL_OVERWRITE Si el almacenamiento con el mismo nombre ya existe, se destruirá y se creará un nuevo almacenamiento.
WMDM_STORAGE_ATTR_FILESYSTEM Este objeto es el medio de almacenamiento de nivel superior (por ejemplo, una tarjeta de almacenamiento o algún otro almacenamiento incorporado).
WMDM_STORAGE_ATTR_REMOVABLE Este medio de almacenamiento es extraíble.
WMDM_STORAGE_ATTR_CANEDITMETADATA Este almacenamiento puede editar metadatos.
WMDM_STORAGE_ATTR_FOLDERS Este medio de almacenamiento admite carpetas y jerarquía de archivos.
WMDM_FILE_ATTR_FOLDER Se trata de una carpeta en el medio de almacenamiento.
WMDM_FILE_ATTR_LINK Se trata de un vínculo que crea una asociación entre varios archivos.
WMDM_FILE_ATTR_FILE Se trata de un archivo en el medio de almacenamiento.
WMDM_FILE_ATTR_AUDIO Este archivo es datos de audio.
WMDM_FILE_ATTR_DATA Este archivo no es datos de audio.
WMDM_FILE_ATTR_CANPLAY El dispositivo puede reproducir este archivo de audio.
WMDM_FILE_ATTR_CANDELETE Este archivo se puede eliminar.
WMDM_FILE_ATTR_CANMOVE Este archivo o carpeta se puede mover en el medio de almacenamiento.
WMDM_FILE_ATTR_CANRENAME Se puede cambiar el nombre de este archivo o carpeta.
WMDM_FILE_ATTR_CANREAD El equipo host puede leer este archivo.
WMDM_FILE_ATTR_MUSIC Este archivo de audio es música.
WMDM_FILE_ATTR_PLAYLIST Se trata de un objeto de lista de reproducción.
WMDM_FILE_ATTR_VIDEO Este archivo contiene datos de vídeo.
WMDM_FILE_ATTR_HIDDEN Este archivo está oculto en el sistema de archivos.
WMDM_FILE_ATTR_SYSTEM Se trata de un archivo del sistema.
WMDM_FILE_ATTR_READONLY Se trata de un archivo de solo lectura.
WMDM_STORAGE_IS_DEFAULT Este almacenamiento es el almacenamiento predeterminado donde se deben colocar nuevos medios.
WMDM_STORAGE_CONTAINS_DEFAULT Este almacenamiento contiene el almacenamiento predeterminado donde se deben colocar nuevos medios.

[in] pwszName

Puntero a una cadena de caracteres anchos y terminada en null que contiene un nombre para el nuevo almacenamiento.

[in] pMetadata

Puntero a una interfaz IWMDMMetaData .

[in] qwFileSize

Qword que contiene el tamaño del archivo.

[out] ppNewStorage

Puntero a un puntero IMDSPStorage para recibir la interfaz IMDSPStorage para el almacenamiento recién creado.

Valor devuelto

El método devuelve un valor HRESULT. Todos los métodos de interfaz de Windows Media Administrador de dispositivos pueden devolver cualquiera de las siguientes clases de códigos de error:

  • Códigos de error COM estándar
  • Códigos de error de Windows convertidos en valores HRESULT
  • Códigos de error de windows Media Administrador de dispositivos
Para obtener una lista extensa de posibles códigos de error, consulte Códigos de error.

Comentarios

Este método es útil si es necesario aplicar metadatos al almacenamiento en el momento de la creación. Por el contrario, los métodos IMDSPStorage2::CreateStorage2 e IMDSPStorage::CreateStorage no proporcionan una manera de proporcionar metadatos en el momento de la creación.

Si el proveedor de servicios de un dispositivo que puede sincronizarse con Reproductor multimedia de Windows admite esta interfaz, Windows Media Administrador de dispositivos llama a este método durante las operaciones insert/2/3.

Si se establecen los atributos WMDM_FILE_ATTR_FOLDER y WMDM_FILE_ATTR_FILE, el atributo folder invalida el atributo de archivo y el nuevo almacenamiento se crea como una carpeta.

El cliente solo puede especificar uno de WMDM_STORAGECONTROL_INSERTBEFORE, WMDM_STORAGECONTROL_INSERTAFTER y WMDM_STORAGECONTROL_INSERTINTO.

El nuevo almacenamiento se puede crear en el mismo nivel o se puede insertar en el almacenamiento actual siempre que el almacenamiento actual sea una carpeta. Esto se controla mediante el valor del parámetro dwAttributes . Si especifica WMDM_STORAGECONTROL_INSERTBEFORE o WMDM_STORAGECONTROL_INSERTAFTER, el nuevo almacenamiento se creará en el mismo nivel que el almacenamiento actual. Si especifica WMDM_STORAGECONTROL_INSERTINTO, el nuevo almacenamiento se insertará en el almacenamiento actual.

WMDM_STORAGECONTROL_INSERTBEFORE y WMDM_STORAGECONTROL_INSERAFTER implican una ordenación del contenido en el sistema de archivos. Si el sistema de archivos no admite la ordenación (por ejemplo, el sistema de archivos FAT32), ambas marcas tienen el mismo efecto de insertar el nuevo almacenamiento en el nivel de almacenamiento actual. Si el almacenamiento actual representa la raíz del medio de almacenamiento y se especifica una de estas dos marcas, se produce un error en la operación.

WMDM_STORAGECONTROL_INSERTINTO solo es válido si el almacenamiento actual es una carpeta. Si el almacenamiento actual es un archivo y se especifica esta marca, se produce un error en la operación.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado mswmdm.h
Library Mssachlp.lib

Consulte también

Habilitación de la sincronización con Reproductor multimedia de Windows

IMDSPStorage2::CreateStorage2

Interfaz IMDSPStorage4

IMDSPStorage::CreateStorage