/*++ Copyright (c) 1998 Microsoft Corporation Module Name: devext.h Abstract: This file contains all declarations used in handling device contexts. Author: Chaitanya Kodeboyina Environment: User Mode --*/ #ifndef __DEVEXT_H #define __DEVEXT_H // // Macros // #ifndef FIELD_OFFSET #define FIELD_OFFSET(type, field) ((LONG)&(((type *)0)->field)) #endif//FIELD_OFFSET #define OFFSET(field) FIELD_OFFSET(DEVICE_CONTEXT, field) // // Helper Prototypes // UINT ReadDeviceContext(PDEVICE_CONTEXT pDevCon, ULONG proxyPtr); UINT PrintDeviceContext(PDEVICE_CONTEXT pDevCon, ULONG proxyPtr, ULONG printDetail); UINT FreeDeviceContext(PDEVICE_CONTEXT pDevCon); // // Constants // StructAccessInfo DeviceContextInfo = { "DeviceContext", { { "DeviceObject", OFFSET(DeviceObject), sizeof(DEVICE_OBJECT), PrintDeviceObject, HIG }, { "State", OFFSET(State), sizeof(UCHAR), NULL, HIG }, { "Type", OFFSET(Type), sizeof(CSHORT), NULL, LOW }, { "Size", OFFSET(Size), sizeof(USHORT), NULL, LOW }, #if DBG { "RefTypes", OFFSET(RefTypes), NUMBER_OF_DCREFS*sizeof(ULONG), NULL, LOW }, #endif { "NdisBindingHandle", OFFSET(NdisBindingHandle), sizeof(NDIS_HANDLE), NULL, LOW }, { "LocalAddress", OFFSET(LocalAddress), sizeof(HARDWARE_ADDRESS), NULL, LOW }, { "NetBIOSAddress", OFFSET(NetBIOSAddress), sizeof(HARDWARE_ADDRESS), NULL, LOW }, { "Linkage", OFFSET(Linkage), sizeof(LIST_ENTRY), NULL, LOW }, { "LinkPool", OFFSET(LinkPool), sizeof(LIST_ENTRY), NULL /* PrintDlcLinkList */, LOW }, { "LinkDeferred", OFFSET(LinkDeferred), sizeof(LIST_ENTRY), NULL /* PrintDlcLinkList */, LOW }, { "LoopbackLinks",OFFSET(LoopbackLinks),2*sizeof(PTP_LINK), NULL, LOW }, { "IndicationQueuesInUse", OFFSET(IndicationQueuesInUse), sizeof(BOOLEAN), NULL, LOW }, { "AddressDatabase", OFFSET(AddressDatabase), sizeof(LIST_ENTRY), PrintAddressList, NOR }, { "@", 0, 0, NULL, LOW }, { "MacInfo", OFFSET(MacInfo), sizeof(NBF_NDIS_IDENTIFICATION), NULL, LOW }, { "@", 0, 0, NULL, LOW }, { "ReservedAddressHandle", OFFSET(ReservedAddressHandle), sizeof(HANDLE), NULL, LOW }, { "ReservedNetBIOSAddress", OFFSET(ReservedNetBIOSAddress), NETBIOS_NAME_LENGTH *sizeof(CHAR), NULL, LOW }, { "@", 0, 0, NULL, LOW }, { "MaxConsecutiveIFrames", OFFSET(MaxConsecutiveIFrames), sizeof(UCHAR), NULL, LOW }, { "TempIFramesReceived", OFFSET(TempIFramesReceived), sizeof(ULONG), NULL, LOW }, { "TempIFrameBytesReceived", OFFSET(TempIFrameBytesReceived), sizeof(ULONG), NULL, LOW }, { "@", 0, 0, NULL, LOW }, { "SendPacketPoolDesc", OFFSET(SendPacketPoolDesc), sizeof(PNBF_POOL_LIST_DESC), PrintNbfPacketPoolListFromPtr, LOW }, { "SendPacketPoolSize", OFFSET(SendPacketPoolSize), sizeof(ULONG), NULL, LOW }, { "ReceivePacketPoolDesc", OFFSET(ReceivePacketPoolDesc), sizeof(PNBF_POOL_LIST_DESC), PrintNbfPacketPoolListFromPtr, LOW }, { "ReceivePacketPoolSize", OFFSET(ReceivePacketPoolSize), sizeof(ULONG), NULL, LOW }, { "NdisBufferPool", OFFSET(NdisBufferPool), sizeof(NDIS_HANDLE), NULL, LOW }, { "@", 0, 0, NULL, LOW }, { "LinkSpinLock", OFFSET(LinkSpinLock), sizeof(KSPIN_LOCK), NULL, LOW }, { "LastLink", OFFSET(LastLink), sizeof(PTP_LINK), NULL, LOW }, { "LinkTreeRoot", OFFSET(LinkTreeRoot), sizeof(PRTL_SPLAY_LINKS), NULL, LOW }, { "LinkTreeElements", OFFSET(LinkTreeElements), sizeof(ULONG), NULL, LOW }, { "LinkDeferred", OFFSET(LinkDeferred), sizeof(LIST_ENTRY), NULL, LOW }, { "", 0, 0, NULL, LOW }, 0 } }; #endif // __DEVEXT_H