I want to call NetShareEnum, a function from netapi32.dll NetShareEnum has this definition:
NET_API_STATUS NetShareEnum( __in LPWSTR servername, __in DWORD level, __out LPBYTE *bufptr, __in DWORD prefmaxlen, __out LPDWORD entriesread, __out LPDWORD totalentries, __inout LPDWORD resume_handle ); I wrote this code in python 2.5: from ctypes import * cname=c_wchar_p('a-computer-name') level=c_int(1) bufptr=create_string_buffer('\00', 10000) prefmaxlen=c_int(9999) entriesread=c_long(0) totalentries=c_long(0) resume=c_long(0) netapi32=cdll.LoadLibrary('netapi32.dll') netapi32.NetShareEnum(cname, level, byref(bufptr), prefmaxlen, byref(entriesread), byref(totalentries), byref(resume)) but I get this error: Traceback (most recent call last): File "<pyshell#12>", line 1, in <module> s.NetShareEnum(name, level, byref(bufptr), prefmaxlen, entriesread, totalentries, resume) ValueError: Procedure called with not enough arguments (28 bytes missing) or wrong calling convention entriesread and totalentries has valid values after call but bufptr is not. I pass bufptr to function instead of byref(bufptr) but the error was same. -- http://mail.python.org/mailman/listinfo/python-list