私はPythonでctypes経由でGetExtendedTcpTableを呼び出しています。 Pythonでctypes経由でGetExtendedTcpTableを呼び出すとき、誰がMIB_TCPROW_OWNER_PID構造体を解放しますか?
はこのために私は以下の構造を宣言しています:class MIB_TCPROW_OWNER_PID(ctypes.Structure):
_fields_ = [('dwState', DWORD),
('dwLocalAddr', DWORD),
('dwLocalPort', DWORD),
('dwRemoteAddr', DWORD),
('dwRemotePort', DWORD),
('dwOwningPid', DWORD)]
とを:ANY_SIZEがGetExtendedTcpTableへの最初の呼び出しによって初期化され
class MIB_TCPTABLE_OWNER_PID(ctypes.Structure):
_fields_ = [('dwNumEntries', DWORD),
('table', MIB_TCPROW_OWNER_PID * ANY_SIZE)]
。
私の質問は、上記の「テーブル」フィールドで撮影したメモリーを割り当て解除の世話を誰ですか? MIB_TCPROW_OWNER_PID構造体の配列です。
私の質問は次のようにする必要があります:whoはMIB_TCPROW_OWNER_PID構造体を配列に割り当てますか? GetExtendedTcpTableまたはPython?
ありがとうございます!
は、だから私はそれの世話をするスペースやctypesのを割り当てる必要がありますか? –
'MIB_TCPROW_OWNER_PID * ANY_SIZE'は、' ANY_SIZE'が設定された後に 'MIB_TCPTABLE_OWNER_PID'が定義されている限り、それを処理します。 –