釋放 WinSNMP 描述元
WinSNMP 程式設計環境會將描述元資源的解除分配指派給 WinSNMP 實作或 WinSNMP 應用程式,視哪個元件配置描述元的記憶體而定。
若要釋放 smiOID 或 smiOCTETS 描述元的資源,適用下列規則:
針對輸入參數
因為 WinSNMP 應用程式會為具有可變長度的輸入物件配置記憶體,因此應用程式必須使用適當的函式釋放該記憶體。 例如,如果應用程式使用呼叫 GlobalAlloc 函式來配置資源,則應該使用 GlobalFree 函式來解除分配資源。 如果應用程式使用呼叫 HeapAlloc 函式來配置資源,它應該呼叫 HeapFree 函式。
針對輸出參數
呼叫下列任一函式會導致實作為 smiOID 或 smiOCTETS 描述元分配記憶體:SnmpGetVb、SnmpEncodeMsg、SnmpOidCopy、SnmpContextToStr和 SnmpStrToOid。
因為實作會配置這些輸出物件的記憶體,因此應用程式必須呼叫 SnmpFreeDescriptor 函式來解除分配資源。 此函式讓實作可以釋放分配給這些結構中 ptr 成員的記憶體。
若要釋放 smiVALUE 結構的資源,WinSNMP 應用程式必須檢查 語法 成員的 smiVALUE 結構,以正確評估結構的 值 成員。 如果 語法 成員指出 值 成員是 smiOCTETS 或 smiOID 描述符,且實作已為該描述符配置資源,則應用程式必須呼叫 SnmpFreeDescriptor。 這可讓實作釋放記憶體。 如果應用程式配置資源,則必須使用適當的函式釋放記憶體,如先前所述。
如需詳細資訊,請參閱 設定 WinSNMP 記憶體物件。