95 lines
2.5 KiB
C
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
|