windows-nt/Source/XPSP1/NT/net/inc/nuiouser.h
2020-09-26 16:20:57 +08:00

95 lines
2.5 KiB
C

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
nuiouser.h
Abstract:
Constants and types to access the NDISUIO driver.
Users must also include ntddndis.h
Environment:
User/Kernel mode.
Revision History:
arvindm 4/12/2000 Created
--*/
#ifndef __NUIOUSER__H
#define __NUIOUSER__H
#define FSCTL_NDISUIO_BASE FILE_DEVICE_NETWORK
#define _NDISUIO_CTL_CODE(_Function, _Method, _Access) \
CTL_CODE(FSCTL_NDISUIO_BASE, _Function, _Method, _Access)
#define IOCTL_NDISUIO_OPEN_DEVICE \
_NDISUIO_CTL_CODE(0x200, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_NDISUIO_QUERY_OID_VALUE \
_NDISUIO_CTL_CODE(0x201, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_NDISUIO_SET_OID_VALUE \
_NDISUIO_CTL_CODE(0x205, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_NDISUIO_SET_ETHER_TYPE \
_NDISUIO_CTL_CODE(0x202, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_NDISUIO_QUERY_BINDING \
_NDISUIO_CTL_CODE(0x203, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_NDISUIO_BIND_WAIT \
_NDISUIO_CTL_CODE(0x204, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
//
// Structure to go with IOCTL_NDISUIO_QUERY_OID_VALUE.
// The Data part is of variable length, determined by
// the input buffer length passed to DeviceIoControl.
//
typedef struct _NDISUIO_QUERY_OID
{
NDIS_OID Oid;
UCHAR Data[sizeof(ULONG)];
} NDISUIO_QUERY_OID, *PNDISUIO_QUERY_OID;
//
// Structure to go with IOCTL_NDISUIO_SET_OID_VALUE.
// The Data part is of variable length, determined
// by the input buffer length passed to DeviceIoControl.
//
typedef struct _NDISUIO_SET_OID
{
NDIS_OID Oid;
UCHAR Data[sizeof(ULONG)];
} NDISUIO_SET_OID, *PNDISUIO_SET_OID;
//
// Structure to go with IOCTL_NDISUIO_QUERY_BINDING.
// The input parameter is BindingIndex, which is the
// index into the list of bindings active at the driver.
// On successful completion, we get back a device name
// and a device descriptor (friendly name).
//
typedef struct _NDISUIO_QUERY_BINDING
{
ULONG BindingIndex; // 0-based binding number
ULONG DeviceNameOffset; // from start of this struct
ULONG DeviceNameLength; // in bytes
ULONG DeviceDescrOffset; // from start of this struct
ULONG DeviceDescrLength; // in bytes
} NDISUIO_QUERY_BINDING, *PNDISUIO_QUERY_BINDING;
#endif // __NUIOUSER__H