Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Pobiera szacowany rozmiar binarny zestawu i jego metadanych w bieżącym zakresie.
Syntax
HRESULT GetSaveSize (
[in] CorSaveSize fSave,
[out] DWORD *pdwSaveSize
);
Parameters
fSave [in] Wartość wyliczenia CorSaveSize , która określa, czy uzyskać dokładny lub przybliżony rozmiar. Prawidłowe są tylko trzy wartości: cssAccurate, cssQuick i cssDiscardTransientCAs:
Funkcja cssAccurate zwraca dokładny rozmiar zapisywania, ale obliczenie trwa dłużej.
cssQuick zwraca rozmiar, wyściełany pod kątem bezpieczeństwa, ale zajmuje mniej czasu na obliczenie.
cssDiscardTransientCAs informuje
GetSaveSize, że może odrzucać odrzucane atrybuty niestandardowe.
pdwSaveSize [out] Wskaźnik do rozmiaru wymaganego do zapisania pliku.
Remarks
GetSaveSize oblicza wymagane miejsce w bajtach, aby zapisać zestaw i wszystkie jego metadane w bieżącym zakresie. (Wywołanie metody IMetaDataEmit::SaveToStream spowoduje emisję tej liczby bajtów).
Jeśli obiekt wywołujący implementuje interfejs IMapToken (za pośrednictwem interfejsu IMetaDataEmit::SetHandler lub IMetaDataEmit::Merge), GetSaveSize wykona dwa przejścia przez metadane, aby je zoptymalizować i skompresować. W przeciwnym razie nie są wykonywane żadne optymalizacje.
W przypadku przeprowadzenia optymalizacji pierwszy pass po prostu sortuje struktury metadanych, aby dostroić wydajność wyszukiwań w czasie importu. Ten krok zwykle powoduje przeniesienie rekordów z efektem ubocznym, który tokeny przechowywane przez narzędzie do przyszłego odwołania są unieważniane. Metadane nie informują obiektu wywołującego o tych zmianach tokenu dopiero po drugim przekazaniu. W drugim przebiegu są wykonywane różne optymalizacje, które mają na celu zmniejszenie ogólnego rozmiaru metadanych, takich jak optymalizacja (wczesne powiązanie) mdTypeRef i mdMemberRef tokenów, gdy odwołanie dotyczy typu lub elementu członkowskiego zadeklarowanego w bieżącym zakresie metadanych. W tym przebiegu następuje kolejna runda mapowania tokenów. Po wykonaniu tej operacji aparat metadanych powiadamia obiekt wywołujący za pośrednictwem interfejsu IMapToken o wszelkich zmienionych wartościach tokenu.
Requirements
Platformy: Zobacz Obsługiwane systemy operacyjne platformy .NET.
Header: Cor.h
Library: CorGuids.lib