Leaked source code of windows server 2003
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.

77 lines
4.3 KiB

  1. //================================================================================
  2. // Copyright (c) 1997 Microsoft Corporation
  3. // Author: RameshV
  4. // Description: handles the noticiations and other mechanisms for parameter
  5. // changes (options )
  6. //================================================================================
  7. #ifndef OPTCHG_H_INCLUDED
  8. #define OPTCHG_H_INCLUDED
  9. //================================================================================
  10. // exported APIS
  11. //================================================================================
  12. DWORD // win32 status
  13. DhcpAddParamChangeRequest( // add a new param change notification request
  14. IN LPWSTR AdapterName, // for this adapter, can be NULL
  15. IN LPBYTE ClassId, // what class id does this belong to?
  16. IN DWORD ClassIdLength, // how big is this class id?
  17. IN LPBYTE OptList, // this is the list of options of interest
  18. IN DWORD OptListSize, // this is the # of bytes of above
  19. IN BOOL IsVendor, // is this vendor specific?
  20. IN DWORD ProcId, // which is the calling process?
  21. IN DWORD Descriptor, // what is the unique descriptor in this process?
  22. IN HANDLE Handle // what is the handle in the calling process space?
  23. );
  24. DWORD // win32 status
  25. DhcpDelParamChangeRequest( // delete a particular request
  26. IN DWORD ProcId, // the process id of the caller
  27. IN HANDLE Handle // the handle as used by the calling process
  28. );
  29. DWORD // win32 status
  30. DhcpMarkParamChangeRequests( // find all params that are affected and mark then as pending
  31. IN LPTSTR AdapterName, // adapter of relevance
  32. IN BYTE OptionId, // the option id itself
  33. IN BOOL IsVendor, // is this vendor specific
  34. IN LPBYTE ClassId // which class --> this must be something that has been ADD-CLASSED
  35. );
  36. typedef DWORD (*DHCP_NOTIFY_FUNC)( // this is the type of the fucntion that actually notifies clients of option change
  37. IN DWORD ProcId, // <ProcId + Descriptor> make a unique key used for finding the event
  38. IN DWORD Descriptor // --- on Win98, only Descriptor is really needed.
  39. ); // if return value is NOT error success, we delete this request
  40. DWORD // win32 status
  41. DhcpNotifyMarkedParamChangeRequests( // notify pending param change requests
  42. IN DHCP_NOTIFY_FUNC NotifyHandler // call this function for each unique id that is present
  43. );
  44. DWORD // win32 status
  45. DhcpNotifyClientOnParamChange( // notify clients
  46. IN DWORD ProcId, // which process called this
  47. IN DWORD Descriptor // unique descriptor for that process
  48. );
  49. DWORD // win32 status
  50. DhcpInitializeParamChangeRequests( // initialize everything in this file
  51. VOID
  52. );
  53. VOID
  54. DhcpCleanupParamChangeRequests( // unwind this module
  55. VOID
  56. );
  57. DWORD // win32 status
  58. DhcpAddParamRequestChangeRequestList( // add to the request list the list of params registered for notifications
  59. IN LPWSTR AdapterName, // which adatper is this request list being requested for?
  60. IN LPBYTE Buffer, // buffer to add options to
  61. IN OUT LPDWORD Size, // in: existing filled up size, out: total size filled up
  62. IN LPBYTE ClassName, // ClassId
  63. IN DWORD ClassLen // size of ClassId in bytes
  64. );
  65. #endif OPTCHG_H_INCLUDED