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.
|
|
/*
* * Copyright (c) Microsoft Corporation. All rights reserved. * * Module Name: * ndispnp.h * * Abstract: * Include file for PnP message apis to NDIS. * * Environment: * These routines are statically linked in the caller's executable and are callable in user mode. */
#ifndef _NDISPNP_
#define _NDISPNP_
#if defined (_MSC_VER)
#if ( _MSC_VER >= 800 )
#pragma warning(push)
#pragma warning(disable:4001)
#pragma warning(disable:4201)
#pragma warning(disable:4214)
#pragma warning(disable:4514)
#endif
#if (_MSC_VER >= 1020)
#pragma once
#endif
#endif
#ifdef __cplusplus
extern "C" { #endif
//
// Definitions for Layer
//
#define NDIS 0x01
#define TDI 0x02
//
// Definitions for Operation
//
#define BIND 0x01
#define UNBIND 0x02
#define RECONFIGURE 0x03
#define UNBIND_FORCE 0x04
#define UNLOAD 0x05
#define REMOVE_DEVICE 0x06 // This is a notification that a device is about to be removed.
#define ADD_IGNORE_BINDING 0x07
#define DEL_IGNORE_BINDING 0x08
#define BIND_LIST 0x09 // this is a notification that a protocol's bind list has changed
//
// Return code from this api is to be treated as a BOOL. Link with ndispnp.lib for this.
//
extern UINT NdisHandlePnPEvent( IN UINT Layer, IN UINT Operation, IN PUNICODE_STRING LowerComponent, IN PUNICODE_STRING UpperComponent, IN PUNICODE_STRING BindList, IN PVOID ReConfigBuffer OPTIONAL, IN UINT ReConfigBufferSize OPTIONAL );
#define MEDIA_STATE_CONNECTED 1
#define MEDIA_STATE_DISCONNECTED 0
#define MEDIA_STATE_UNKNOWN -1
#define DEVICE_STATE_CONNECTED 1
#define DEVICE_STATE_DISCONNECTED 0
typedef struct { ULONG Size; // Of this structure
ULONG DeviceState; // DEVICE_STATE_XXX above
ULONG MediaType; // NdisMediumXXX
ULONG MediaState; // MEDIA_STATE_XXX above
ULONG PhysicalMediaType; ULONG LinkSpeed; // In 100bits/s. 10Mb/s = 100000
ULONGLONG PacketsSent; ULONGLONG PacketsReceived; ULONG InitTime; // In milliseconds
ULONG ConnectTime; // In seconds
ULONGLONG BytesSent; // 0 - Unknown (or not supported)
ULONGLONG BytesReceived; // 0 - Unknown (or not supported)
ULONGLONG DirectedBytesReceived; ULONGLONG DirectedPacketsReceived; ULONG PacketsReceiveErrors; ULONG PacketsSendErrors; ULONG ResetCount; ULONG MediaSenseConnectCount; ULONG MediaSenseDisconnectCount;
} NIC_STATISTICS, *PNIC_STATISTICS;
extern UINT NdisQueryHwAddress( IN PUNICODE_STRING DeviceGUID, // Device name of the form "\Device\{GUID}
OUT PUCHAR CurrentAddress, // Has space for HW address
OUT PUCHAR PermanentAddress, // Has space for HW address
OUT PUCHAR VendorId // Has space for Vendor Id
);
extern UINT NdisQueryStatistics( IN PUNICODE_STRING DeviceGUID, // Device name of the form "\Device\{GUID}
OUT PNIC_STATISTICS Statistics );
typedef struct _NDIS_INTERFACE { UNICODE_STRING DeviceName; UNICODE_STRING DeviceDescription; } NDIS_INTERFACE, *PNDIS_INTERFACE;
typedef struct _NDIS_ENUM_INTF { UINT TotalInterfaces; // in Interface array below
UINT AvailableInterfaces; // >= TotalInterfaces
UINT BytesNeeded; // for all available interfaces
UINT Reserved; NDIS_INTERFACE Interface[1]; } NDIS_ENUM_INTF, *PNDIS_ENUM_INTF;
extern UINT NdisEnumerateInterfaces( IN PNDIS_ENUM_INTF Interfaces, IN UINT Size );
typedef enum { BundlePrimary, BundleSecondary } BUNDLE_TYPE;
typedef struct _DEVICE_BUNDLE_ENRTY { UNICODE_STRING Name; BUNDLE_TYPE Type; } DEVICE_BUNDLE_ENRTY, *PDEVICE_BUNDLE_ENRTY;
typedef struct _DEVICE_BUNDLE { UINT TotalEntries; UINT AvailableEntries; DEVICE_BUNDLE_ENRTY Entries[1]; } DEVICE_BUNDLE, *PDEVICE_BUNDLE;
extern UINT NdisQueryDeviceBundle( IN PUNICODE_STRING DeviceGUID, // Device name of the form "\Device\{GUID}
OUT PDEVICE_BUNDLE BundleBuffer, IN UINT BufferSize );
#define POINTER_TO_OFFSET(val, start) \
(val) = ((val) == NULL) ? NULL : (PVOID)( (PCHAR)(val) - (ULONG_PTR)(start) )
#define OFFSET_TO_POINTER(val, start) \
(val) = ((val) == NULL) ? NULL : (PVOID)( (PCHAR)(val) + (ULONG_PTR)(start) )
#ifdef __cplusplus
} // extern "C"
#endif
#if defined (_MSC_VER) && ( _MSC_VER >= 800 )
#pragma warning(pop)
#endif
#endif // _NDISPNP_
|