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.

94 lines
2.5 KiB

  1. /*++
  2. Copyright (c) 2000 Microsoft Corporation
  3. Module Name:
  4. nuiouser.h
  5. Abstract:
  6. Constants and types to access the NDISUIO driver.
  7. Users must also include ntddndis.h
  8. Environment:
  9. User/Kernel mode.
  10. Revision History:
  11. arvindm 4/12/2000 Created
  12. --*/
  13. #ifndef __NUIOUSER__H
  14. #define __NUIOUSER__H
  15. #define FSCTL_NDISUIO_BASE FILE_DEVICE_NETWORK
  16. #define _NDISUIO_CTL_CODE(_Function, _Method, _Access) \
  17. CTL_CODE(FSCTL_NDISUIO_BASE, _Function, _Method, _Access)
  18. #define IOCTL_NDISUIO_OPEN_DEVICE \
  19. _NDISUIO_CTL_CODE(0x200, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  20. #define IOCTL_NDISUIO_QUERY_OID_VALUE \
  21. _NDISUIO_CTL_CODE(0x201, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  22. #define IOCTL_NDISUIO_SET_OID_VALUE \
  23. _NDISUIO_CTL_CODE(0x205, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  24. #define IOCTL_NDISUIO_SET_ETHER_TYPE \
  25. _NDISUIO_CTL_CODE(0x202, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  26. #define IOCTL_NDISUIO_QUERY_BINDING \
  27. _NDISUIO_CTL_CODE(0x203, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  28. #define IOCTL_NDISUIO_BIND_WAIT \
  29. _NDISUIO_CTL_CODE(0x204, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  30. //
  31. // Structure to go with IOCTL_NDISUIO_QUERY_OID_VALUE.
  32. // The Data part is of variable length, determined by
  33. // the input buffer length passed to DeviceIoControl.
  34. //
  35. typedef struct _NDISUIO_QUERY_OID
  36. {
  37. NDIS_OID Oid;
  38. UCHAR Data[sizeof(ULONG)];
  39. } NDISUIO_QUERY_OID, *PNDISUIO_QUERY_OID;
  40. //
  41. // Structure to go with IOCTL_NDISUIO_SET_OID_VALUE.
  42. // The Data part is of variable length, determined
  43. // by the input buffer length passed to DeviceIoControl.
  44. //
  45. typedef struct _NDISUIO_SET_OID
  46. {
  47. NDIS_OID Oid;
  48. UCHAR Data[sizeof(ULONG)];
  49. } NDISUIO_SET_OID, *PNDISUIO_SET_OID;
  50. //
  51. // Structure to go with IOCTL_NDISUIO_QUERY_BINDING.
  52. // The input parameter is BindingIndex, which is the
  53. // index into the list of bindings active at the driver.
  54. // On successful completion, we get back a device name
  55. // and a device descriptor (friendly name).
  56. //
  57. typedef struct _NDISUIO_QUERY_BINDING
  58. {
  59. ULONG BindingIndex; // 0-based binding number
  60. ULONG DeviceNameOffset; // from start of this struct
  61. ULONG DeviceNameLength; // in bytes
  62. ULONG DeviceDescrOffset; // from start of this struct
  63. ULONG DeviceDescrLength; // in bytes
  64. } NDISUIO_QUERY_BINDING, *PNDISUIO_QUERY_BINDING;
  65. #endif // __NUIOUSER__H