Leistungsmerkmale
Ein Aufruf der COM-Verbunddateiimplementierung der IPropertySetStorage-Schnittstelle zum Erstellen eines Eigenschaftensatzes bewirkt, dass entweder ein Stream oder Speicher über einen Aufruf von IStorage::CreateStream oder IStorage::CreateStorage erstellt wird. Ein Standardeigenschaftensatz wird im Arbeitsspeicher erstellt, aber nicht auf den Datenträger geleert. Wenn ein Aufruf von IPropertyStorage::WriteMultiple erfolgt, wird er innerhalb des Puffers ausgeführt.
Wenn ein Eigenschaftensatz geöffnet wird, wird IStorage::OpenStream oder IStorage::OpenStorage verwendet. Der gesamte Eigenschaftensatzdatenstrom wird in den zusammenhängenden Arbeitsspeicher eingelesen. 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ägerlesevorgängen) teuer, 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 sicherzustellen, dass Speicherplatz verfügbar ist, wenn Daten hinzugefügt werden.
Es werden keine Garantien dafür gegeben, ob IPropertyStorage::WriteMultiple Updates leert. Im Allgemeinen sollte der Client davon ausgehen, dass IPropertyStorage::WriteMultiple nur den im Arbeitsspeicherpuffer aktualisiert. Zum Leeren von Daten sollte IPropertyStorage::Commit oder IUnknown::Release (letzte Version) aufgerufen werden.
Dieser Entwurf bedeutet, dass WriteMultiple zwar erfolgreich ist, die Daten jedoch nicht dauerhaft geschrieben werden.
Hinweis
Diese Größe des Eigenschaftensatzdatenstroms darf 256.000 Bytes nicht überschreiten.