Leistungsmerkmale

Ein Aufruf der COM-Verbunddateiimplementierung der IPropertySetStorage-Schnittstelle zum Erstellen eines Eigenschaftensets bewirkt, dass entweder ein Stream oder Speicher durch einen Aufruf von IStorage::CreateStream oder IStorage::CreateStorageerstellt wird. Ein Standardeigenschaftssatz wird im Arbeitsspeicher erstellt, aber nicht auf den Datenträger geleert. Wenn IPropertyStorage::WriteMultipleaufruft, wird es innerhalb des Puffers betrieben.

Wenn ein Eigenschaftensatz geöffnet wird, wird IStorage::OpenStream oder IStorage::OpenStorage verwendet. Der gesamte Eigenschaftensatzstream wird in den zusammenhängenden Speicher gelesen. IPropertyStorage::ReadMultiple-Vorgänge arbeiten dann durch Lesen des Speicherpuffers. Daher ist der erste Zugriff zeitintensiv (aufgrund von Datenträgerlesezugriffen), aber nachfolgende Zugriffe sind sehr effizient. Schreibvorgänge können etwas teurer sein, da SetSize-Vorgänge für den zugrunde liegenden Stream möglicherweise erforderlich sind, um zu gewährleisten, dass Speicherplatz verfügbar ist, wenn Daten hinzugefügt werden.

Es wird nicht garantiert, ob IPropertyStorage::WriteMultiple Updates leert. Im Allgemeinen sollte der Client davon ausgehen, dass IPropertyStorage::WriteMultiple nur den im Arbeitsspeicherpuffer aktualisiert. Zum Leeren von Daten sollten IPropertyStorage::Commit oder IUnknown::Release (letzte Version) aufgerufen werden.

Dieser Entwurf bedeutet, dass WriteMultiple zwar erfolgreich ist, die Daten aber nicht dauerhaft geschrieben werden.

Hinweis

Diese Größe des Eigenschaftensatzstreams darf 256.000 Bytes nicht überschreiten.