108 lines
3.1 KiB
C

// Copyright (C) 2005 Intel Corporation
//
// HECI_if.h
//
// Generated by C DriverWizard 3.1.0 (Build 1722)
// Requires DDK Only
// File created on 6/20/2005
//
// Define an Interface Guid for HECI device class.
// This GUID is used to register (IoRegisterDeviceInterface)
// an instance of an interface so that user application
// can control the HECI device.
//
// GUID definition are required to be outside of header inclusion pragma to avoid
// error during precompiled headers.
//
#ifndef _HECI_IF_H_
#define _HECI_IF_H_
#if (_WIN32_WINNT == 0x0500)
typedef unsigned char UINT8, *PUINT8;
typedef char INT8, *PINT8;
typedef unsigned short UINT16, *PUINT16;
#endif
typedef enum _HECI_STATUS{
HECI_STATUS_OK = 0x0,
HECI_STATUS_GENERAL_ERROR = 0x2000,
HECI_STATUS_LOCATE_DEVICE_ERROR,
HECI_STATUS_MEMORY_ACCESS_ERROR,
HECI_STATUS_WRITE_REGISTER_ERROR,
HECI_STATUS_MEMORY_ALLOCATION_ERROR,
HECI_STATUS_BUFFER_OVEREFLOW_ERROR,
HECI_STATUS_NOT_ENOUGH_MEMORY,
HECI_STATUS_MSG_TRANSMISSION_ERROR,
HECI_STATUS_VERSION_MISMATCH,
HECI_STATUS_UNEXPECTED_INTERRUPT_REASON,
HECI_STATUS_TIMEOUT_ERROR,
HECI_STATUS_UNEXPECTED_RESPONSE,
HECI_STATUS_UNKNOWN_MESSAGE,
HECI_STATUS_CANNOT_FOUND_HOST_CLIENT,
HECI_STATUS_CANNOT_FOUND_ME_CLIENT,
HECI_STATUS_CLIENT_ALREADY_CONNECTED,
HECI_STATUS_NO_FREE_CONNECTION,
HECI_STATUS_ILLEGAL_PARAMETER,
HECI_STATUS_FLOW_CONTROL_ERROR,
HECI_STATUS_NO_MESSAGE,
HECI_STATUS_BUFFER_TOO_LARGE,
HECI_STATUS_BUFFER_TOO_SMALL,
HECI_STATUS_BUFFER_NOT_EMPTY,
NUM_OF_HECI_STATUSES
}HECI_STATUS;
// Define GUID used to find the HECI device
// {E2D1FF34-3458-49A9-88DA-8E6915CE9BE5}
DEFINE_GUID(GUID_DEVINTERFACE_HECI,
0xE2D1FF34, 0x3458, 0x49A9, 0x88, 0xDA, 0x8E, 0x69, 0x15, 0xCE, 0x9B, 0xE5);
// Define GUID used to connect to the PTHI client (via the HECI device)
// {12F80028-B4B7-4B2D-ACA8-46E0FF65814C}
DEFINE_GUID(HECI_PTHI_GUID,
0x12F80028,0xB4B7,0x4b2d,0xAC,0xA8,0x46,0xE0,0xFF,0x65,0x81,0x4c);
// Define GUID used to connect to the Watchdog client (via the HECI device)
// {05B79A6F-4628-4D7F-899D-A91514CB32AB}
DEFINE_GUID(HECI_WATCHDOG_GUID,
0x05B79A6F, 0x4628, 0x4D7F, 0x89, 0x9D, 0xA9, 0x15, 0x14, 0xCB, 0x32, 0xAB);
#define FILE_DEVICE_HECI 0x8000
// Define Interface reference/dereference routines for
// Interfaces exported by IRP_MN_QUERY_INTERFACE
#define HECI_IOCTL(index) \
CTL_CODE(FILE_DEVICE_HECI, index, METHOD_BUFFERED, FILE_READ_DATA)
#define IOCTL_HECI_GET_VERSION \
CTL_CODE(FILE_DEVICE_HECI, 0x800, METHOD_BUFFERED, FILE_READ_ACCESS|FILE_WRITE_ACCESS)
#define IOCTL_HECI_CONNECT_CLIENT \
CTL_CODE(FILE_DEVICE_HECI, 0x801, METHOD_BUFFERED, FILE_READ_ACCESS|FILE_WRITE_ACCESS)
#define IOCTL_HECI_WD \
CTL_CODE(FILE_DEVICE_HECI, 0x802, METHOD_BUFFERED, FILE_READ_ACCESS|FILE_WRITE_ACCESS)
#pragma pack(1)
typedef struct _HECI_VERSION
{
UINT8 major;
UINT8 minor;
UINT8 hotfix;
UINT16 build;
} HECI_VERSION;
typedef struct _HECI_CLIENT
{
UINT32 MaxMessageLength;
UINT8 ProtocolVersion;
} HECI_CLIENT;
#pragma pack( )
#endif // _HECI_IF_H_