Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenscsiwmi.h
Go to the documentation of this file.
00001 /* 00002 * scsiwmi.h 00003 * 00004 * SCSI WMILIB interface. 00005 * 00006 * This file is part of the w32api package. 00007 * 00008 * Contributors: 00009 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 00010 * 00011 * THIS SOFTWARE IS NOT COPYRIGHTED 00012 * 00013 * This source code is offered for use in the public domain. You may 00014 * use, modify or distribute it freely. 00015 * 00016 * This code is distributed in the hope that it will be useful but 00017 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00018 * DISCLAIMED. This includes but is not limited to warranties of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 * 00021 */ 00022 00023 #ifndef __SCSIWMI_H 00024 #define __SCSIWMI_H 00025 00026 #include "srb.h" 00027 00028 #ifdef __cplusplus 00029 extern "C" { 00030 #endif 00031 00032 #pragma pack(push,4) 00033 00034 typedef struct _SCSIWMI_REQUEST_CONTEXT { 00035 PVOID UserContext; 00036 ULONG BufferSize; 00037 PUCHAR Buffer; 00038 UCHAR MinorFunction; 00039 UCHAR ReturnStatus; 00040 ULONG ReturnSize; 00041 } SCSIWMI_REQUEST_CONTEXT, *PSCSIWMI_REQUEST_CONTEXT; 00042 00043 #ifdef _GUID_DEFINED 00044 # warning _GUID_DEFINED is deprecated, use GUID_DEFINED instead 00045 #endif 00046 00047 #if ! (defined _GUID_DEFINED || defined GUID_DEFINED) 00048 #define GUID_DEFINED 00049 typedef struct _GUID { 00050 unsigned long Data1; 00051 unsigned short Data2; 00052 unsigned short Data3; 00053 unsigned char Data4[ 8 ]; 00054 } GUID; 00055 #endif 00056 00057 typedef struct _SCSIWMIGUIDREGINFO { 00058 LPCGUID Guid; 00059 ULONG InstanceCount; 00060 ULONG Flags; 00061 } SCSIWMIGUIDREGINFO, *PSCSIWMIGUIDREGINFO; 00062 00063 typedef UCHAR 00064 (NTAPI *PSCSIWMI_QUERY_REGINFO)( 00065 IN PVOID DeviceContext, 00066 IN PSCSIWMI_REQUEST_CONTEXT RequestContext, 00067 OUT PWCHAR *MofResourceName); 00068 00069 typedef BOOLEAN 00070 (NTAPI *PSCSIWMI_QUERY_DATABLOCK)( 00071 IN PVOID Context, 00072 IN PSCSIWMI_REQUEST_CONTEXT DispatchContext, 00073 IN ULONG GuidIndex, 00074 IN ULONG InstanceIndex, 00075 IN ULONG InstanceCount, 00076 IN OUT PULONG InstanceLengthArray, 00077 IN ULONG BufferAvail, 00078 OUT PUCHAR Buffer); 00079 00080 typedef BOOLEAN 00081 (NTAPI *PSCSIWMI_SET_DATABLOCK)( 00082 IN PVOID DeviceContext, 00083 IN PSCSIWMI_REQUEST_CONTEXT RequestContext, 00084 IN ULONG GuidIndex, 00085 IN ULONG InstanceIndex, 00086 IN ULONG BufferSize, 00087 IN PUCHAR Buffer); 00088 00089 typedef BOOLEAN 00090 (NTAPI *PSCSIWMI_SET_DATAITEM)( 00091 IN PVOID DeviceContext, 00092 IN PSCSIWMI_REQUEST_CONTEXT RequestContext, 00093 IN ULONG GuidIndex, 00094 IN ULONG InstanceIndex, 00095 IN ULONG DataItemId, 00096 IN ULONG BufferSize, 00097 IN PUCHAR Buffer); 00098 00099 typedef BOOLEAN 00100 (NTAPI *PSCSIWMI_EXECUTE_METHOD)( 00101 IN PVOID DeviceContext, 00102 IN PSCSIWMI_REQUEST_CONTEXT RequestContext, 00103 IN ULONG GuidIndex, 00104 IN ULONG InstanceIndex, 00105 IN ULONG MethodId, 00106 IN ULONG InBufferSize, 00107 IN ULONG OutBufferSize, 00108 IN OUT PUCHAR Buffer); 00109 00110 typedef enum _SCSIWMI_ENABLE_DISABLE_CONTROL { 00111 ScsiWmiEventControl, 00112 ScsiWmiDataBlockControl 00113 } SCSIWMI_ENABLE_DISABLE_CONTROL; 00114 00115 typedef BOOLEAN 00116 (NTAPI *PSCSIWMI_FUNCTION_CONTROL)( 00117 IN PVOID DeviceContext, 00118 IN PSCSIWMI_REQUEST_CONTEXT RequestContext, 00119 IN ULONG GuidIndex, 00120 IN SCSIWMI_ENABLE_DISABLE_CONTROL Function, 00121 IN BOOLEAN Enable); 00122 00123 typedef struct _SCSIWMILIB_CONTEXT { 00124 ULONG GuidCount; 00125 PSCSIWMIGUIDREGINFO GuidList; 00126 PSCSIWMI_QUERY_REGINFO QueryWmiRegInfo; 00127 PSCSIWMI_QUERY_DATABLOCK QueryWmiDataBlock; 00128 PSCSIWMI_SET_DATABLOCK SetWmiDataBlock; 00129 PSCSIWMI_SET_DATAITEM SetWmiDataItem; 00130 PSCSIWMI_EXECUTE_METHOD ExecuteWmiMethod; 00131 PSCSIWMI_FUNCTION_CONTROL WmiFunctionControl; 00132 } SCSI_WMILIB_CONTEXT, *PSCSI_WMILIB_CONTEXT; 00133 00134 SCSIPORTAPI 00135 BOOLEAN 00136 NTAPI 00137 ScsiPortWmiDispatchFunction( 00138 IN PSCSI_WMILIB_CONTEXT WmiLibInfo, 00139 IN UCHAR MinorFunction, 00140 IN PVOID DeviceContext, 00141 IN PSCSIWMI_REQUEST_CONTEXT RequestContext, 00142 IN PVOID DataPath, 00143 IN ULONG BufferSize, 00144 IN PVOID Buffer); 00145 00146 #define ScsiPortWmiFireAdapterEvent( \ 00147 HwDeviceExtension, \ 00148 Guid, \ 00149 InstanceIndex, \ 00150 EventDataSize, \ 00151 EventData) \ 00152 ScsiPortWmiFireLogicalUnitEvent( \ 00153 HwDeviceExtension, \ 00154 0xff, \ 00155 0, \ 00156 0, \ 00157 Guid, \ 00158 InstanceIndex, \ 00159 EventDataSize, \ 00160 EventData) 00161 00162 /* 00163 * ULONG 00164 * ScsiPortWmiGetReturnSize( 00165 * PSCSIWMI_REQUEST_CONTEXT RequestContext); 00166 */ 00167 #define ScsiPortWmiGetReturnSize(RequestContext) \ 00168 ((RequestContext)->ReturnSize) 00169 00170 /* UCHAR 00171 * ScsiPortWmiGetReturnStatus( 00172 * PSCSIWMI_REQUEST_CONTEXT RequestContext); 00173 */ 00174 #define ScsiPortWmiGetReturnStatus(RequestContext) \ 00175 ((RequestContext)->ReturnStatus) 00176 00177 SCSIPORTAPI 00178 VOID 00179 NTAPI 00180 ScsiPortWmiPostProcess( 00181 IN PSCSIWMI_REQUEST_CONTEXT RequestContext, 00182 IN UCHAR SrbStatus, 00183 IN ULONG BufferUsed); 00184 00185 SCSIPORTAPI 00186 VOID 00187 NTAPI 00188 ScsiPortWmiFireLogicalUnitEvent( 00189 IN PVOID HwDeviceExtension, 00190 IN UCHAR PathId, 00191 IN UCHAR TargetId, 00192 IN UCHAR Lun, 00193 IN LPGUID Guid, 00194 IN ULONG InstanceIndex, 00195 IN ULONG EventDataSize, 00196 IN PVOID EventData); 00197 00198 #pragma pack(pop) 00199 00200 #ifdef __cplusplus 00201 } 00202 #endif 00203 00204 #endif /* __SCSIWMI_H */ Generated on Sun May 27 2012 04:30:16 for ReactOS by
1.7.6.1
|