holdingarea/llvm/llvm-gcc4.2-2.7-x86-mingw32/include/ddk/tdiinfo.h
author Matt Plumtree <matt.plumtree@nokia.com>
Thu, 07 Oct 2010 13:58:22 +0100
branchbug235_bringup_0
changeset 55 09263774e342
parent 20 d2d6724aef32
permissions -rw-r--r--
Move GLES20 source into standard locations Move Khronos headers into their respective components, to be exported by each. Remove hostthreadadapter as nothing outside of the vghwapiwrapper, which now contains the code, needs it

/*
 * tdiinfo.h
 *
 * TDI set and query information interface
 *
 * This file is part of the w32api package.
 *
 * Contributors:
 *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
 *
 * THIS SOFTWARE IS NOT COPYRIGHTED
 *
 * This source code is offered for use in the public domain. You may
 * use, modify or distribute it freely.
 *
 * This code is distributed in the hope that it will be useful but
 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
 * DISCLAIMED. This includes but is not limited to warranties of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 */

#ifndef __TDIINFO_H
#define __TDIINFO_H

#if __GNUC__ >=3
#pragma GCC system_header
#endif

#ifdef __cplusplus
extern "C" {
#endif

#include "ntddk.h"

typedef struct TDIEntityID {
  ULONG  tei_entity;
  ULONG  tei_instance;
} TDIEntityID;

#define	MAX_TDI_ENTITIES                  4096
#define INVALID_ENTITY_INSTANCE           -1
#define	GENERIC_ENTITY				            0
#define	ENTITY_LIST_ID				            0
#define	ENTITY_TYPE_ID				            1

#define	AT_ENTITY					                0x280
#define	CL_NL_ENTITY				              0x301
#define	CL_TL_ENTITY				              0x401
#define	CO_NL_ENTITY				              0x300
#define	CO_TL_ENTITY				              0x400
#define	ER_ENTITY					                0x380
#define	IF_ENTITY					                0x200

#define	AT_ARP						                0x280
#define	AT_NULL						                0x282
#define	CL_TL_NBF					                0x401
#define	CL_TL_UDP					                0x403
#define	CL_NL_IPX					                0x301
#define	CL_NL_IP					                0x303
#define	CO_TL_NBF					                0x400
#define	CO_TL_SPX					                0x402
#define	CO_TL_TCP					                0x404
#define	CO_TL_SPP					                0x406
#define	ER_ICMP						                0x380
#define	IF_GENERIC					              0x200
#define	IF_MIB						                0x202

/* TDIObjectID.toi_class constants */
#define	INFO_CLASS_GENERIC			          0x100
#define	INFO_CLASS_PROTOCOL			          0x200
#define	INFO_CLASS_IMPLEMENTATION	        0x300

/* TDIObjectID.toi_type constants */
#define	INFO_TYPE_PROVIDER			          0x100
#define	INFO_TYPE_ADDRESS_OBJECT	        0x200
#define	INFO_TYPE_CONNECTION		          0x300

typedef struct _TDIObjectID {
	TDIEntityID  toi_entity;
	ULONG  toi_class;
	ULONG  toi_type;
	ULONG  toi_id;
} TDIObjectID;

#define	CONTEXT_SIZE				              16

typedef struct _TCP_REQUEST_QUERY_INFORMATION_EX {
  TDIObjectID  ID;
  ULONG_PTR  Context[CONTEXT_SIZE / sizeof(ULONG_PTR)];
} TCP_REQUEST_QUERY_INFORMATION_EX, *PTCP_REQUEST_QUERY_INFORMATION_EX;

#if defined(_WIN64)
typedef struct _TCP_REQUEST_QUERY_INFORMATION_EX32 {
  TDIObjectID  ID;
  ULONG32  Context[CONTEXT_SIZE / sizeof(ULONG32)];
} TCP_REQUEST_QUERY_INFORMATION_EX32, *PTCP_REQUEST_QUERY_INFORMATION_EX32;
#endif /* _WIN64 */

typedef struct _TCP_REQUEST_SET_INFORMATION_EX {
  TDIObjectID  ID;
  UINT  BufferSize;
  UCHAR  Buffer[1];
} TCP_REQUEST_SET_INFORMATION_EX, *PTCP_REQUEST_SET_INFORMATION_EX;

#ifdef __cplusplus
}
#endif

#endif /* __TDIINFO_H */