IMDSPStorage4::CreateStorageWithMetadata-Methode (mswmdm.h)

Die CreateStorageWithMetadata-Methode erstellt einen neuen Speicher, wendet die angegebenen Metadaten auf den neuen Speicher an und gibt einen Zeiger auf die IMDSPStorage-Schnittstelle im neu erstellten Speicher zurück. Der neue Speicher kann auf derselben Ebene erstellt oder in den aktuellen Speicher eingefügt werden.

Diese Methode ist nützlich, wenn das Gerät zur Erstellungszeit Metadaten benötigt. Je nach Gerät kann es auch effizienter sein, Metadaten zur Erstellungszeit anzuwenden, anstatt den Speicher zu erstellen und dann Metadaten festzulegen.

Syntax

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

Parameter

[in] dwAttributes

DWORD mit Attributen für den neuen Speicher. In der folgenden Tabelle sind die verfügbaren Speicherattribute aufgeführt.

attribute BESCHREIBUNG
WMDM_STORAGECONTROL_INSERTBEFORE Das neue Speicherobjekt wird vor dem Zielobjekt erstellt.
WMDM_STORAGECONTROL_INSERTAFTER Das neue Speicherobjekt wird nach dem Zielobjekt erstellt.
WMDM_STORAGECONTROL_INSERTINTO Das neue Speicherobjekt wird im Zielobjektordner erstellt.
WMDM_STORAGECONTROL_OVERWRITE Wenn Speicher mit demselben Namen bereits vorhanden ist, wird er gelöscht und ein neuer Speicher erstellt.
WMDM_STORAGE_ATTR_FILESYSTEM Dieses Objekt ist das Speichermedium der obersten Ebene (z. B. ein Speicher Karte oder ein anderer onboarder Speicher).)
WMDM_STORAGE_ATTR_REMOVABLE Dieses Speichermedium kann entfernt werden.
WMDM_STORAGE_ATTR_CANEDITMETADATA Dieser Speicher kann Metadaten bearbeiten.
WMDM_STORAGE_ATTR_FOLDERS Dieses Speichermedium unterstützt Ordner und Dateihierarchie.
WMDM_FILE_ATTR_FOLDER Dies ist ein Ordner auf dem Speichermedium.
WMDM_FILE_ATTR_LINK Dies ist ein Link, der eine Zuordnung zwischen mehreren Dateien erstellt.
WMDM_FILE_ATTR_FILE Dies ist eine Datei auf dem Speichermedium.
WMDM_FILE_ATTR_AUDIO Bei dieser Datei handelt es sich um Audiodaten.
WMDM_FILE_ATTR_DATA Bei dieser Datei handelt es sich um Nicht-Audiodaten.
WMDM_FILE_ATTR_CANPLAY Diese Audiodatei kann vom Gerät wiedergegeben werden.
WMDM_FILE_ATTR_CANDELETE Diese Datei kann gelöscht werden.
WMDM_FILE_ATTR_CANMOVE Diese Datei oder dieser Ordner kann auf dem Speichermedium verschoben werden.
WMDM_FILE_ATTR_CANRENAME Diese Datei oder dieser Ordner kann umbenannt werden.
WMDM_FILE_ATTR_CANREAD Diese Datei kann vom Hostcomputer gelesen werden.
WMDM_FILE_ATTR_MUSIC Diese Audiodatei ist Musik.
WMDM_FILE_ATTR_PLAYLIST Dies ist ein Wiedergabelistenobjekt.
WMDM_FILE_ATTR_VIDEO Diese Datei enthält Videodaten.
WMDM_FILE_ATTR_HIDDEN Diese Datei ist im Dateisystem ausgeblendet.
WMDM_FILE_ATTR_SYSTEM Dies ist eine Systemdatei.
WMDM_FILE_ATTR_READONLY Dies ist eine schreibgeschützte Datei.
WMDM_STORAGE_IS_DEFAULT Dieser Speicher ist der Standardspeicher, in dem neue Medien platziert werden sollen.
WMDM_STORAGE_CONTAINS_DEFAULT Dieser Speicher enthält den Standardspeicher, in dem neue Medien platziert werden sollen.

[in] pwszName

Zeiger auf eine Breitzeichenzeichenfolge mit NULL-Beendigung, die einen Namen für den neuen Speicher enthält.

[in] pMetadata

Zeiger auf eine IWMDMMetaData-Schnittstelle .

[in] qwFileSize

Qword , das die Dateigröße enthält.

[out] ppNewStorage

Zeiger auf einen IMDSPStorage-Zeiger , um die IMDSPStorage-Schnittstelle für den neu erstellten Speicher zu empfangen.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Alle Schnittstellenmethoden in Windows Media Geräte-Manager können eine der folgenden Klassen von Fehlercodes zurückgeben:

  • Com-Standardfehlercodes
  • In HRESULT-Werte konvertierte Windows-Fehlercodes
  • Windows Media Geräte-Manager Fehlercodes
Eine ausführliche Liste möglicher Fehlercodes finden Sie unter Fehlercodes.

Hinweise

Diese Methode ist nützlich, wenn Metadaten zum Zeitpunkt der Erstellung auf den Speicher angewendet werden müssen. Im Gegensatz dazu bieten die Methoden IMDSPStorage2::CreateStorage2 und IMDSPStorage::CreateStorage keine Möglichkeit, Metadaten zur Erstellungszeit bereitzustellen.

Wenn der Dienstanbieter für ein Gerät, das mit Windows Medienwiedergabe synchronisieren kann, diese Schnittstelle unterstützt, ruft Windows Media Geräte-Manager diese Methode während Insert/2/3-Vorgängen auf.

Wenn sowohl die Attribute WMDM_FILE_ATTR_FOLDER als auch WMDM_FILE_ATTR_FILE festgelegt sind, überschreibt das ordner-Attribut das Dateiattribute, und der neue Speicher wird als Ordner erstellt.

Nur eine der WMDM_STORAGECONTROL_INSERTBEFORE, WMDM_STORAGECONTROL_INSERTAFTER und WMDM_STORAGECONTROL_INSERTINTO kann vom Client angegeben werden.

Der neue Speicher kann auf derselben Ebene erstellt oder in den aktuellen Speicher eingefügt werden, vorausgesetzt, der aktuelle Speicher ist ein Ordner. Dies wird durch den Wert des dwAttributes-Parameters gesteuert. Wenn WMDM_STORAGECONTROL_INSERTBEFORE oder WMDM_STORAGECONTROL_INSERTAFTER angegeben wird, wird der neue Speicher auf der gleichen Ebene wie der aktuelle Speicher erstellt. Wenn WMDM_STORAGECONTROL_INSERTINTO angegeben wird, wird der neue Speicher in den aktuellen Speicher eingefügt.

WMDM_STORAGECONTROL_INSERTBEFORE und WMDM_STORAGECONTROL_INSERAFTER implizieren eine Reihenfolge der Inhalte im Dateisystem. Wenn das Dateisystem die Reihenfolge nicht unterstützt (z. B. das FAT32-Dateisystem), haben beide Flags den gleichen Effekt, dass der neue Speicher auf der Ebene des aktuellen Speichers eingefügt wird. Wenn der aktuelle Speicher den Stamm des Speichermediums darstellt und eines dieser beiden Flags angegeben ist, schlägt der Vorgang fehl.

WMDM_STORAGECONTROL_INSERTINTO ist nur gültig, wenn der aktuelle Speicher ein Ordner ist. Wenn der aktuelle Speicher eine Datei ist und dieses Flag angegeben ist, schlägt der Vorgang fehl.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile mswmdm.h
Bibliothek Mssachlp.lib

Weitere Informationen

Aktivieren der Synchronisierung mit Windows Medienwiedergabe

IMDSPStorage2::CreateStorage2

IMDSPStorage4-Schnittstelle

IMDSPStorage::CreateStorage