home *** CD-ROM | disk | FTP | other *** search
/ PCNET 2006 September - Disc 1 / PCNET_CD_2006_09.iso / surpriz / MSRMesh-VirtualWIFI.MSI / ioctlcodes.h < prev    next >
Encoding:
C/C++ Source or Header  |  2005-06-24  |  4.7 KB  |  119 lines

  1. /*
  2.  * Author   : Ranveer Chandra
  3.  * Directory: VirtualWiFi_Root\inc
  4.  * File Name: ioctlcodes.h
  5.  * Purpose  : Defines all the ioctls, and their data structures
  6.  */
  7.  
  8. #define ADAPTIVE_SCHEDULING                  1
  9. #define FIXED_SCHEDULING                     0
  10. #define SSID_LENGTH                 32
  11. #define MODE_AH                              0
  12. #define MODE_IS                     1
  13.  
  14. // Define the ioctls to be used by VirtualWiFi
  15. #define CTRL_CODE(function, method, access)  CTL_CODE(FILE_DEVICE_NETWORK, function, method, access)
  16.  
  17. /*
  18. // When no service, set time to switch to IS mode
  19. #define IOCTL_SET_SWITCHING_TIME_INFRA       CTRL_CODE( 0x849, METHOD_BUFFERED, FILE_WRITE_ACCESS)
  20.  
  21. // When no service, get time to switch to IS mode
  22. #define IOCTL_GET_SWITCHING_TIME_INFRA       CTRL_CODE( 0x848, METHOD_BUFFERED, FILE_READ_ACCESS)
  23.  
  24. // When no service, set time to stay in IS mode
  25. #define IOCTL_SET_WAITING_TIME_INFRA         CTRL_CODE( 0x847, METHOD_BUFFERED, FILE_WRITE_ACCESS)
  26.  
  27. // When no service, get time to stay in IS mode
  28. #define IOCTL_GET_WAITING_TIME_INFRA         CTRL_CODE( 0x846, METHOD_BUFFERED, FILE_READ_ACCESS)
  29.  
  30. // When no service, set time to switch to AH mode
  31. #define IOCTL_SET_SWITCHING_TIME_ADHOC       CTRL_CODE( 0x845, METHOD_BUFFERED, FILE_WRITE_ACCESS)
  32.  
  33. // When no service, get time to swtich to AH mode
  34. #define IOCTL_GET_SWITCHING_TIME_ADHOC       CTRL_CODE( 0x844, METHOD_BUFFERED, FILE_READ_ACCESS)
  35.  
  36. // When no service, set time to stay in AH mode
  37. #define IOCTL_SET_WAITING_TIME_ADHOC         CTRL_CODE( 0x843, METHOD_BUFFERED, FILE_WRITE_ACCESS)
  38.  
  39. // When no service, get time to stay in AH mode
  40. #define IOCTL_GET_WAITING_TIME_ADHOC         CTRL_CODE( 0x842, METHOD_BUFFERED, FILE_READ_ACCESS)
  41. */
  42.  
  43. // Used by the Service: Get the number of networks to connect
  44. #define IOCTL_GET_NUM_NETWORKS                 CTRL_CODE( 0x846, METHOD_BUFFERED, FILE_READ_ACCESS)
  45.  
  46. // Used by the Service: Find out if we want to use adaptive scheduling
  47. #define IOCTL_GET_SCHEDULING_SCHEME             CTRL_CODE( 0x845, METHOD_BUFFERED, FILE_READ_ACCESS)
  48.  
  49. // During installation: Set the switching parameters for the current network
  50. #define IOCTL_SET_SWITCHING_PARAMETERS         CTRL_CODE( 0x844, METHOD_BUFFERED, FILE_WRITE_ACCESS)
  51.  
  52. // Used by the service: Retrieve the switching parameters for the current network
  53. #define IOCTL_GET_SWITCH_TIME                 CTRL_CODE( 0x843, METHOD_BUFFERED, FILE_READ_ACCESS)
  54.  
  55. // Used by the service: Retrieve the switching parameters for the current network
  56. #define IOCTL_GET_WAIT_TIME                     CTRL_CODE( 0x842, METHOD_BUFFERED, FILE_READ_ACCESS)
  57.  
  58. // When no service, starts the switching of the card
  59. #define IOCTL_START_SWITCHING                CTRL_CODE( 0x841, METHOD_BUFFERED, FILE_READ_ACCESS)
  60.  
  61. // Switch the SSID, used by the Service
  62. #define IOCTL_SWITCH_SSID                    CTRL_CODE( 0x840, METHOD_BUFFERED, FILE_READ_ACCESS)
  63.  
  64. // Send the buffered packets - used by both the Server and Service
  65. #define IOCTL_SEND_BUFFERED_PACKETS          CTRL_CODE( 0x839, METHOD_BUFFERED, FILE_READ_ACCESS)
  66.  
  67. // Get the current SSID, used by Service
  68. #define IOCTL_GET_CURRENT_SSID               CTRL_CODE( 0x838, METHOD_BUFFERED, FILE_READ_ACCESS)
  69.  
  70. // Get the current Mode, used by Service
  71. #define IOCTL_GET_CURRENT_MODE               CTRL_CODE( 0x837, METHOD_BUFFERED, FILE_READ_ACCESS)
  72.  
  73. // Start Buffering Packets - used by VirtualWiFi Server
  74. #define IOCTL_START_BUFFERING_PACKETS        CTRL_CODE( 0x836, METHOD_BUFFERED, FILE_READ_ACCESS)
  75.  
  76. // Get the length of Buffer Queue - used for adaptive scheduling
  77. #define IOCTL_GET_BUFFER_QUEUE_LENGTH        CTRL_CODE( 0x835, METHOD_BUFFERED, FILE_READ_ACCESS)
  78.  
  79. // Get the current SSID, used by Service
  80. #define IOCTL_SET_CURRENT_SSID               CTRL_CODE( 0x834, METHOD_BUFFERED, FILE_WRITE_ACCESS)
  81.  
  82. // Post installation: Dynamically set the switching parameters for any network
  83. #define IOCTL_SET_SWITCHING_PARAMETERS_FOR_CONNECTION         CTRL_CODE( 0x833, METHOD_BUFFERED, FILE_WRITE_ACCESS)
  84.  
  85. // For VirtualWiFihelper: determine the time taken by the card to switch to another network
  86. #define IOCTL_GET_CARD_SWITCH_TIME             CTRL_CODE( 0x832, METHOD_BUFFERED, FILE_READ_ACCESS)
  87.  
  88. typedef struct {
  89.     char *adapterNum;
  90.     ULONG switchTime;
  91.     ULONG waitTime;
  92.     int isAdaptiveScheduling;
  93. } SetVirtualWiFiTimers;
  94.  
  95. typedef struct {
  96.     char *adapterNum;
  97.     USHORT networkMode;
  98.     ULONG ssidLength;
  99.     char networkSSID[SSID_LENGTH];
  100.     //ULONG connectionNum;
  101.     ULONG switchTime;
  102.     ULONG waitTime;
  103.     int isAdaptiveScheduling;
  104. } SetVirtualWiFiTimersForConnection;
  105.  
  106. typedef struct {
  107.     ULONG switchTime;
  108.     ULONG waitTime;
  109. } GetVirtualWiFiTimers;
  110.  
  111. typedef struct {
  112.     char *adapterNum;
  113.     USHORT networkMode;
  114.     ULONG ssidLength;
  115.     char networkSSID[SSID_LENGTH];
  116. } NetworkModeAndSSID;
  117.  
  118. typedef ULONGLONG Time;
  119.