WlanQueryInterface莫名其妙地失败了

时间:2012-05-25 14:12:04

标签: c# pinvoke wlan

我一直在打这个问题一段时间。在WLan中看似简单的命令对我来说是失败的。我正在尝试执行以下代码:

[DllImport("Wlanapi.dll", EntryPoint = "WlanQueryInterface", SetLastError = true)]
public static extern uint WlanQueryInterface(
    [In] IntPtr hClientHandle, 
    [In] ref Guid pInterfaceGuid,
    WLAN_INTF_OPCODE OpCode, 
    IntPtr pReserved,
    [Out] out uint pdwDataSize, 
    ref IntPtr ppData,
    IntPtr pWlanOpcodeValueType);

var tempID = InterfaceID;
UInt32 dataSize;
IntPtr pData = IntPtr.Zero;

uint results = WlanQueryInterface(
    _sessionHandle, 
    ref tempID, 
    WLAN_INTF_OPCODE.wlan_intf_opcode_current_connection,
    IntPtr.Zero, 
    out dataSize, 
    ref pData, 
    IntPtr.Zero);

我每次都得到的是50和没有指针的结果。我已经搜索过并且无法确定50表示什么作为返回值。我最好的猜测是它的ERROR_INVALID_STATE。但是我也无法找到文档列出的错误状态的任何定义。

我之前打开了一个句柄,并确认这仍然有效。我还验证了Interface Guid是正确的(在这种情况下从InterfaceInfo结构中检索)。我使用了很多不同的WLan方法,没有类似的问题,所以我猜我没有正确定义P / Invoke声明。

如果有人以我的方式看到错误,我发誓我会改变!

0 个答案:

没有答案