2013-12-04 6 views
0

Как я могу назвать родные функции Wifi в C#, как этотКак я могу назвать собственные функции Wifi?

DWORD WINAPI WlanHostedNetworkForceStart(
    _In_  HANDLE hClientHandle, 
    _Out_opt_ PWLAN_HOSTED_NETWORK_REASON pFailReason, 
    _Reserved_ PVOID pvReserved 
); 

http://msdn.microsoft.com/en-us/library/windows/desktop/dd439488(v=vs.85).aspx

+1

Попробуйте поиск по [P/Invoke] (https://www.google.com/search?q=P%2FInvoke&oq=P%2FInvoke&aqs=chrome..69i 57j0j69i58j0l3.2538j0j7 & sourceid = chrome & espv = 210 & es_sm = 93 & ie = UTF-8), * или * объединить это с функцией и получить [здесь] (http://pinvoke.net/default.aspx/wlanapi/WlanHostedNetworkForceStart.html) – crashmstr

ответ

1

Вам нужно определить типы, которые будут использоваться и объявить метод. Подробное описание см. На странице Platform Invoke Tutorial.

Для начала, вам потребуется WLAN_HOSTED_NETWORK_REASON перечисление:

public enum WLAN_HOSTED_NETWORK_REASON 
{ 
    wlan_hosted_network_reason_success = 0, 
    wlan_hosted_network_reason_unspecified, 
    wlan_hosted_network_reason_bad_parameters, 
    wlan_hosted_network_reason_service_shutting_down, 
    wlan_hosted_network_reason_insufficient_resources, 
    wlan_hosted_network_reason_elevation_required, 
    wlan_hosted_network_reason_read_only, 
    wlan_hosted_network_reason_persistence_failed, 
    wlan_hosted_network_reason_crypt_error, 
    wlan_hosted_network_reason_impersonation, 
    wlan_hosted_network_reason_stop_before_start, 
    wlan_hosted_network_reason_interface_available, 
    wlan_hosted_network_reason_interface_unavailable, 
    wlan_hosted_network_reason_miniport_stopped, 
    wlan_hosted_network_reason_miniport_started, 
    wlan_hosted_network_reason_incompatible_connection_started, 
    wlan_hosted_network_reason_incompatible_connection_stopped, 
    wlan_hosted_network_reason_user_action, 
    wlan_hosted_network_reason_client_abort, 
    wlan_hosted_network_reason_ap_start_failed, 
    wlan_hosted_network_reason_peer_arrived, 
    wlan_hosted_network_reason_peer_departed, 
    wlan_hosted_network_reason_peer_timeout, 
    wlan_hosted_network_reason_gp_denied, 
    wlan_hosted_network_reason_service_unavailable, 
    wlan_hosted_network_reason_device_change, 
    wlan_hosted_network_reason_properties_change, 
    wlan_hosted_network_reason_virtual_station_blocking_use, 
    wlan_hosted_network_reason_service_available_on_virtual_station 
} 

Далее определить нативный метод:

[DllImport("Wlanapi.dll", EntryPoint = "WlanHostedNetworkForceStart")] 
public static extern uint WlanHostedNetworkForceStart(
    IntPtr hClientHandle, 
    [Out] out WLAN_HOSTED_NETWORK_REASON pFailReason, 
    IntPtr pvReserved); 

The вы можете просто позвонить из любого места в коде C# :

WLAN_HOSTED_NETWORK_REASON failReason; 
var result = WlanHostedNetworkForceStart(myClientHandle, out failReason, myReserved); 
Смежные вопросы