⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imb_if.h

📁 windows下直接调用驱动程序功能的函数
💻 H
字号:
/*M*                     //                    INTEL CORPORATION PROPRIETARY INFORMATION//      This software is supplied under the terms of a license agreement or//      nondisclosure agreement with Intel Corporation and may not be copied//      or disclosed except in accordance with the terms of that agreement.//            Copyright (c) 1995-2000 Intel Corporation.  All Rights Reserved.//*M*//* * $Log:   \\cospublic004\shareddata\ISC\ISC2x\COMMON\SRC\imb\imb_if.h.v  $ * 
 *    Rev 1.1   08 Dec 1998 10:55:44   jpaiasno
 * Added code to support async.
 * DPC events from the EMP console.
 *  *    Rev 1.8   03 Apr 1998 15:39:56   HMAHADEX * Added ifdef UNIX  around  * IOCTL_IMB_POLL_ASYNC *  *    Rev 1.7   24 Mar 1998 14:21:34   fkhanx * Added copyright Header*/#ifndef IMB_IF__#define IMB_IF__//// This is the structure passed in to the IOCTL_IMB_SHUTDOWN_CODE request//typedef struct {	int	code;		// values defined below#define		SD_NO_ACTION				0#define		SD_RESET					1#define		SD_POWER_OFF				2	int	delayTime;  // in units of 100 millisecond} ShutdownCmdBuffer;#pragma pack(1)//// This is the generic IMB packet format, the final checksum can't be// represented in this structure and will show up as the last data byte//typedef struct {	BYTE rsSa;	BYTE nfLn;	BYTE cSum1;	BYTE rqSa;	BYTE seqLn;	BYTE cmd;	BYTE data[1];} ImbPacket;#define MIN_IMB_PACKET_SIZE		7	// ImbPacket w/o data, but w/trailing checksum#define MAX_IMB_PACKET_SIZE		33	// as per spec//// This is the standard IMB response format where the first byte of// IMB packet data is interpreted as a command completion code.//typedef struct {	BYTE rsSa;	BYTE nfLn;	BYTE cSum1;	BYTE rqSa;	BYTE seqLn;	BYTE cmd;	BYTE cCode;	BYTE data[1];} ImbRespPacket;#define MIN_IMB_RESPONSE_SIZE	7	// min packet + completion code#define MAX_IMB_RESPONSE_SIZE	MAX_IMB_PACKET_SIZE///////////////////////////////////////////////////////////////////////////////////////////  ImbRequestBuffer//////////////////////////////////////////////////////////////////////////////////////////*D*//  Name:       ImbRequestBuffer//  Purpose:    Structure definition for holding IMB message data//  Context:    Used by SendTimedImbpMessage and SendTimedI2cMessge//              functions in the library interface. In use, it is overlayed on a //				char buffer of size MIN_IMB_REQ_BUF_SIZE + //  Fields:     //              respBufSize     size of the response buffer////              timeout         timeout value in milli seconds   //                     //              req			    body of request to send//              *D*/			typedef struct {	BYTE rsSa;			// IMB address of responder	BYTE cmd;			// IMB command	BYTE netFn;			// netFn for command	BYTE rsLun;			// logical unit on responder	BYTE dataLength;	// length of following data	BYTE data[1];		// request data} ImbRequest;typedef struct {   DWORD		flags;			// request flags#define				NO_RESPONSE_EXPECTED	0x01	// don't wait around for an IMB response   DWORD		timeOut;		// in uSec units   ImbRequest	req;			// message buffer} ImbRequestBuffer;#define MIN_IMB_REQ_BUF_SIZE	13	// a buffer without any request data///////////////////////////////////////////////////////////////////////////////////////////  ImbResponseBuffer//////////////////////////////////////////////////////////////////////////////////////////*D*//  Name:       ImbResponseBuffer//  Purpose:    Structure definition for response of a previous send //  Context:    Used by DeviceIoControl to pass the message to be sent to//              MISSMIC port//  Fields:     //  			cCode		completion code returned by firmware//              data		buffer for  response data from firmware*D*/typedef struct {	BYTE       cCode;		// completion code			BYTE       data[1];		// response data buffer} ImbResponseBuffer;#define MIN_IMB_RESP_BUF_SIZE	1	// a buffer without any request data#define MAX_IMB_RESP_SIZE		(MIN_IMB_RESP_BUF_SIZE + MAX_IMB_RESPONSE_SIZE)#pragma pack()//// Async message access structures and types//typedef DWORD	ImbAsyncSeq;//// This is the structure passed in to IOCTL_IMB_GET_ASYNC_MSG//typedef struct {	DWORD			timeOut;	// how long to wait for a message to come in	ImbAsyncSeq		lastSeq;	// last message seen or ASYNC_SEQ_START} ImbAsyncRequest;#define ASYNC_SEQ_START		0	// starting sequence numbertypedef struct {	ImbAsyncSeq		thisSeq;	// tag for returned message	BYTE data[1];} ImbAsyncResponse;#define MIN_ASYNC_RESP_SIZE		sizeof( ImbAsyncSeq )#define MAX_ASYNC_RESP_SIZE		(MIN_ASYNC_RESP_SIZE + MAX_IMB_PACKET_SIZE)//// Driver Ioctls//#define FILE_DEVICE_IMB			0x00008010#define IOCTL_IMB_BASE			0x00000880#define IOCTL_IMB_SEND_MESSAGE		CTL_CODE(FILE_DEVICE_IMB, IOCTL_IMB_BASE + 2, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_IMB_GET_ASYNC_MSG		CTL_CODE(FILE_DEVICE_IMB, IOCTL_IMB_BASE + 8, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_IMB_MAP_MEMORY		CTL_CODE(FILE_DEVICE_IMB, IOCTL_IMB_BASE + 14,METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_IMB_UNMAP_MEMORY		CTL_CODE(FILE_DEVICE_IMB, IOCTL_IMB_BASE + 16,METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_IMB_SHUTDOWN_CODE		CTL_CODE(FILE_DEVICE_IMB, IOCTL_IMB_BASE + 18,METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_IMB_REGISTER_ASYNC_OBJ	CTL_CODE(FILE_DEVICE_IMB, IOCTL_IMB_BASE + 24,METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_IMB_DEREGISTER_ASYNC_OBJ	CTL_CODE(FILE_DEVICE_IMB, IOCTL_IMB_BASE + 26,METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_IMB_CHECK_EVENT		CTL_CODE(FILE_DEVICE_IMB, IOCTL_IMB_BASE + 28,METHOD_BUFFERED, FILE_ANY_ACCESS)#if defined(UWSVR4) || defined (UNIX)#define IOCTL_IMB_POLL_ASYNC		CTL_CODE(FILE_DEVICE_IMB, IOCTL_IMB_BASE + 20,METHOD_BUFFERED, FILE_ANY_ACCESS)#endif#endif // IMB_IF__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -