108 lines
3.1 KiB
C
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_
|