Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
3.3 KiB

  1. #pragma once
  2. // Service Control Manager notifications
  3. #define WZCNOTIF_UNKNOWN 0
  4. #define WZCNOTIF_DEVICE_ARRIVAL 1
  5. #define WZCNOTIF_DEVICE_REMOVAL 2
  6. // WMI notifications
  7. #define WZCNOTIF_ADAPTER_BIND 3
  8. #define WZCNOTIF_ADAPTER_UNBIND 4
  9. #define WZCNOTIF_MEDIA_CONNECT 5
  10. #define WZCNOTIF_MEDIA_DISCONNECT 6
  11. #define WZCNOTIF_WZC_CONNECT 7
  12. // datatype describing the WZC specific notifcation sent to the upper levels
  13. // whenver a WZC Configuration has been successfully plumbed down.
  14. typedef struct _WZC_CONFIG_NOTIF
  15. {
  16. DWORD dwSessionHdl;
  17. NDIS_802_11_SSID ndSSID;
  18. RAW_DATA rdEventData;
  19. WCHAR wszGuid[1];
  20. } WZC_CONFIG_NOTIF, *PWZC_CONFIG_NOTIF;
  21. // the datatype below is used to bring all different types of notifications
  22. // to one common point within the Wireless Zero Configuration Service. Each
  23. // type of notification should have a WZCNOTIF* constant defined and should
  24. // enlist its specific data structure (with variable lenght probably) in the
  25. // union from within the WZC_DEVICE_NOTIF structure
  26. typedef struct _WZC_DEVICE_NOTIF
  27. {
  28. DWORD dwEventType; // one of WZCNOTIF* values
  29. union
  30. {
  31. DEV_BROADCAST_DEVICEINTERFACE dbDeviceIntf; // filled in for SCM notifications
  32. WNODE_HEADER wmiNodeHdr; // filled in for WMI notifications
  33. WZC_CONFIG_NOTIF wzcConfig; // null terminated guid name
  34. };
  35. } WZC_DEVICE_NOTIF, *PWZC_DEVICE_NOTIF;
  36. // Upper level app commands (might move to wzcsapi.h later)
  37. #define WZCCMD_HARD_RESET 0
  38. #define WZCCMD_SOFT_RESET 1
  39. #define WZCCMD_CFG_NEXT 2 // cmd to switch to the next cfg in the list
  40. #define WZCCMD_CFG_DELETE 3 // cmd to delete the currently plumbed cfg
  41. #define WZCCMD_CFG_NOOP 4 // cmd no operation can be done on the crt config
  42. #define WZCCMD_CFG_SETDATA 5 // cmd to set the BLOB associated with the crt config
  43. #define WZCCMD_SKEY_QUERY 6 // cmd to retrieve the dynamic session keys
  44. #define WZCCMD_SKEY_SET 7 // cmd to set the dynamic session keys
  45. // (Upper level app -> WZC) interraction. Upper level app can partially control
  46. // the functioning of WZC by providing certain stimulus to the state machine.
  47. // Parameters:
  48. // dwCtrlCode:
  49. // [in] one of WZCCMD_* constants
  50. // wszIntfGuid:
  51. // [in] the guid of the interface to which the command is addressed
  52. DWORD
  53. RpcCmdInterface(
  54. IN DWORD dwHandle, // handle to check the validity of the command against the WZC state
  55. IN DWORD dwCmdCode, // one of the WZCCMD_* constants
  56. IN LPWSTR wszIntfGuid, // interface GUID to which the command is addressed
  57. IN PRAW_DATA prdUserData); // raw user data
  58. // (Upper level app <- WZC) notification. Upper level app gets notifications
  59. // from WZC through this call.
  60. DWORD
  61. ElMediaEventsHandler(
  62. IN PWZC_DEVICE_NOTIF pwzcDeviceNotif); // notification blob
  63. // (Upper level app <- WZC) notification. Upper level app gets notified
  64. // from WZC whenever the user is altering the list of preferred networks
  65. DWORD
  66. ElWZCCfgChangeHandler(
  67. IN LPWSTR wszIntfGuid,
  68. PWZC_802_11_CONFIG_LIST pwzcCfgList);
  69. DWORD
  70. WZCSvcCheckRPCAccess(DWORD dwAccess);
  71. HINSTANCE
  72. WZCGetSPResModule();