Freigeben über


Leistungsmerkmale

Ein Aufruf der COM-Verbunddateiimplementierung der IPropertySetStorage Schnittstelle zum Erstellen eines Eigenschaftensatzes führt dazu, dass entweder ein Datenstrom oder speicher über einen Aufruf von IStorage::CreateStream oder IStorage::CreateStorageerstellt wird. Ein Standardeigenschaftssatz wird im Arbeitsspeicher erstellt, aber nicht auf den Datenträger geleert. Wenn ein Aufruf von IPropertyStorage::WriteMultipleerfolgt, wird er innerhalb des Puffers verwendet.

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

Es werden keine Garantien dafür gewährt, ob IPropertyStorage::WriteMultiple Updates leeren wird. Im Allgemeinen sollte der Client davon ausgehen, dass IPropertyStorage::WriteMultiple nur den Speicherpuffer aktualisiert. Zum Leeren von Daten sollte IPropertyStorage::Commit oder IUnknown::Release (letzte Version) aufgerufen werden.

Dieses Design bedeutet, dass WriteMultiple- erfolgreich sein kann, aber die Daten werden nicht dauerhaft geschrieben.

Anmerkung

Diese Größe des Eigenschaftensatzdatenstroms darf 256K-Bytes nicht überschreiten.