// 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_