WinSNMP 記述子の解放

WinSNMP プログラミング環境では、記述子にメモリを割り当てるコンポーネントに応じて、記述子リソースの割り当て解除が WinSNMP 実装または WinSNMP アプリケーションに割り当てられます。

smiOID 記述子または smiOCTETS 記述子のリソースを解放するには、次の規則が適用されます。

  • 入力パラメーターの場合

    WinSNMP アプリケーションは可変長の入力オブジェクトにメモリを割り当てるので、アプリケーションは適切な関数を使用してそのメモリを解放する必要があります。 たとえば、アプリケーションが GlobalAlloc 関数の呼び出しでリソースを割り当てた場合、 GlobalFree 関数を使用してリソースの割り当てを解除する必要があります。 アプリケーションが HeapAlloc 関数の呼び出しでリソースを割り当てた場合は、 HeapFree 関数を呼び出す必要があります。

  • 出力パラメーターの場合

    次のいずれかの関数を呼び出すと、実装で smiOID またはsmiOCTETS 記述子のメモリが割り当てられます: SnmpGetVbSnmpEncodeMsgSnmpOidCopySnmpContextToStrSnmpStrToOid

    実装ではこれらの出力オブジェクトにメモリが割り当てられるため、アプリケーションは SnmpFreeDescriptor 関数を呼び出してリソースの割り当てを解除する必要があります。 この関数を使用すると、これらの構造体の ptr メンバーに割り当てられたメモリを解放できます。

smiVALUE 構造体のリソースを解放するには、WinSNMP アプリケーションで smiVALUE 構造体の構文メンバーをチェックして、構造体のメンバーを正しく評価する必要があります。 構文メンバーがメンバーが smiOCTETS または smiOID 記述子であり、実装によって記述子のリソースが割り当てられていることを示す場合、アプリケーションは SnmpFreeDescriptor を呼び出す必要があります。 これにより、実装でメモリを解放できます。 アプリケーションがリソースを割り当てた場合は、前に示したように、適切な関数を使用してメモリを解放する必要があります。

詳細については、「 WinSNMP メモリ オブジェクトの割り当て」を参照してください。