Using functions from WZCSAPI.dll?

M

mich1985

Hello,
i try to use the following function to get avaiable wifi nics.

C/C++ declaration:
//---------------------------------------
// [P]INTF_ENTRY: describes the key info for one interface
// this is used in conjunction with [P]INTFS_KEY_TABLE and
WZCEnumInterfaces
typedef struct
{
LPWSTR wszGuid;
} INTF_KEY_ENTRY, *PINTF_KEY_ENTRY;

//---------------------------------------
// [P]INTFS_KEY_TABLE: describes the table of key info for all
interfaces
// this is used in conjunction with [P]INTF_KEY_ENTRY and
WZCEnumInterfaces
typedef struct
{
DWORD dwNumIntfs;
PINTF_KEY_ENTRY pIntfs;
} INTFS_KEY_TABLE, *PINTFS_KEY_TABLE;

// Parameters:
// pSrvAddr
// [in] WZC Server to contact
// pIntf
// [out] table of key info for all interfaces
// Returned value:
// Win32 error code
DWORD
WZCEnumInterfaces(
LPWSTR pSrvAddr,
PINTFS_KEY_TABLE pIntfs);

my C# Version:
[StructLayout(LayoutKind.Sequential)]
public struct INTFS_KEY_TABLE
{
public uint dwNumIntfs;
//public INTF_KEY_ENTRY pIntfs;
public IntPtr pIntfs;
}

[StructLayout(LayoutKind.Sequential)]
public struct INTF_KEY_ENTRY
{
public string wszGuid;
}

[DllImport("WZCSAPI.dll")]
public static extern uint WZCEnumInterfaces(string pSvrAddr,
ref INTFS_KEY_TABLE myTab);

My Program:

uint retValue = 0;
INTFS_KEY_TABLE IntfsTable = new INTFS_KEY_TABLE();
INTF_KEY_ENTRY IntfsEntry = new INTF_KEY_ENTRY();

IntfsEntry.wszGuid = null;
IntfsTable.dwNumIntfs = 0;

Marshal.StructureToPtr(IntfsEntry, IntfsTable.pIntfs,
false);
retValue = WZCEnumInterfaces("", ref IntfsTable);
etc...

On StructureToPtr it crashes. Why? Are there any faults in the
declaration part?

Best Regards,

Florian
 
P

Paul G. Tobey [eMVP]

Get OpenNETCF Smart Device Framework from www.opennetcf.org. Several of us
have wrapped most of the WZC stuff there in the OpenNETCF.Net namespace.

Paul T.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top