/*++ Copyright (c) 1997-1999 Hewlett-Packard Company & Microsoft Corporation Module Name: i2osmi.h Abstract: This module defines the NT types, constants, and functions that are exposed from the i2oexec driver. Revision History: --*/ #if !defined(I2OSMI_HDR) #define I2OSMI_HDR #if _MSC_VER > 1000 #pragma once #endif #include #include "I2OUtil.h" #include "I2OExec.h" #pragma pack (push, 1) // // Parameter structure for Get/Set Parameters call. // typedef struct _I2O_PARAM_BLOCK { ULONG IOP; USHORT TargetTID; UCHAR ParamData[1]; } I2O_PARAM_BLOCK, *PI2O_PARAM_BLOCK; // // I2O IOP Descriptor // typedef struct _I2O_IOP_DESCRIPTOR { U32 IOPNumber; BOOLEAN (*SendHandler) (PVOID HandlerContext, PVOID MessageFrame); PVOID reserved; PVOID reserved1; PVOID HandlerContext; ULONG (*GetMFA)(PVOID HandlerContext, PVOID MFA, PVOID Buffer, ULONG Size); ULONG MaxMessageFrameSize; ULONG ExpectedLCTSize; PVOID AdapterObject; ULONG MaxInboundMFrames; ULONG InitialInboundMFrames; } I2O_IOP_DESCRIPTOR, *PI2O_IOP_DESCRIPTOR; // // I2O IOP and LCT Configuration data // typedef struct _I2O_DEVICE_DESCRIPTOR { I2O_IOP_DESCRIPTOR IOP; ULONG ChangeIndicator; I2O_LCT_ENTRY LCT; } I2O_DEVICE_DESCRIPTOR, *PI2O_DEVICE_DESCRIPTOR; // // I2O Query Configuration Record structure // #define I2O_CLASS_MATCH_ANY_BITS (((1<