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

📄 scsiwmi.h

📁 MinGW+MSYS开发必用的api参考
💻 H
字号:
/* * scsiwmi.h * * SCSI WMILIB interface. * * This file is part of the w32api package. * * Contributors: *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net> * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */#ifndef __SCSIWMI_H#define __SCSIWMI_H#if __GNUC__ >=3#pragma GCC system_header#endif#ifdef __cplusplusextern "C" {#endif#pragma pack(push,4)#include "ntddk.h"#include "srb.h"typedef struct _SCSIWMI_REQUEST_CONTEXT {  PVOID  UserContext;  ULONG  BufferSize;  PUCHAR  Buffer;  UCHAR  MinorFunction;  UCHAR  ReturnStatus;  ULONG  ReturnSize;} SCSIWMI_REQUEST_CONTEXT, *PSCSIWMI_REQUEST_CONTEXT;#ifdef _GUID_DEFINED# warning _GUID_DEFINED is deprecated, use GUID_DEFINED instead#endif#if ! (defined _GUID_DEFINED || defined GUID_DEFINED)#define GUID_DEFINEDtypedef struct _GUID {    unsigned long  Data1;    unsigned short Data2;    unsigned short Data3;    unsigned char  Data4[ 8 ];} GUID;#endif#ifndef _LPCGUID_DEFINED#define _LPCGUID_DEFINEDtypedef const GUID *LPCGUID;#endiftypedef struct _SCSIWMIGUIDREGINFO {  LPCGUID  Guid;  ULONG  InstanceCount;  ULONG  Flags;} SCSIWMIGUIDREGINFO, *PSCSIWMIGUIDREGINFO;typedef UCHAR DDKAPI(*PSCSIWMI_QUERY_REGINFO)(  /*IN*/ PVOID  DeviceContext,  /*IN*/ PSCSIWMI_REQUEST_CONTEXT  RequestContext,  /*OUT*/ PWCHAR  *MofResourceName);typedef BOOLEAN DDKAPI(*PSCSIWMI_QUERY_DATABLOCK)(  /*IN*/ PVOID  Context,  /*IN*/ PSCSIWMI_REQUEST_CONTEXT  DispatchContext,  /*IN*/ ULONG  GuidIndex,  /*IN*/ ULONG  InstanceIndex,  /*IN*/ ULONG  InstanceCount,  /*IN OUT*/ PULONG  InstanceLengthArray,  /*IN*/ ULONG  BufferAvail,  /*OUT*/ PUCHAR  Buffer);typedef BOOLEAN DDKAPI(*PSCSIWMI_SET_DATABLOCK)(  /*IN*/ PVOID  DeviceContext,  /*IN*/ PSCSIWMI_REQUEST_CONTEXT  RequestContext,  /*IN*/ ULONG  GuidIndex,  /*IN*/ ULONG  InstanceIndex,  /*IN*/ ULONG  BufferSize,  /*IN*/ PUCHAR  Buffer);typedef BOOLEAN DDKAPI(*PSCSIWMI_SET_DATAITEM)(  /*IN*/ PVOID  DeviceContext,  /*IN*/ PSCSIWMI_REQUEST_CONTEXT  RequestContext,  /*IN*/ ULONG  GuidIndex,  /*IN*/ ULONG  InstanceIndex,  /*IN*/ ULONG  DataItemId,  /*IN*/ ULONG  BufferSize,  /*IN*/ PUCHAR  Buffer);typedef BOOLEAN DDKAPI(*PSCSIWMI_EXECUTE_METHOD)(  /*IN*/ PVOID  DeviceContext,  /*IN*/ PSCSIWMI_REQUEST_CONTEXT  RequestContext,  /*IN*/ ULONG  GuidIndex,  /*IN*/ ULONG  InstanceIndex,  /*IN*/ ULONG  MethodId,  /*IN*/ ULONG  InBufferSize,  /*IN*/ ULONG  OutBufferSize,  /*IN OUT*/ PUCHAR  Buffer);typedef enum _SCSIWMI_ENABLE_DISABLE_CONTROL {	ScsiWmiEventControl,	ScsiWmiDataBlockControl} SCSIWMI_ENABLE_DISABLE_CONTROL;typedef BOOLEAN DDKAPI(*PSCSIWMI_FUNCTION_CONTROL)(  /*IN*/ PVOID  DeviceContext,  /*IN*/ PSCSIWMI_REQUEST_CONTEXT  RequestContext,  /*IN*/ ULONG  GuidIndex,  /*IN*/ SCSIWMI_ENABLE_DISABLE_CONTROL  Function,  /*IN*/ BOOLEAN  Enable);typedef struct _SCSIWMILIB_CONTEXT {  ULONG  GuidCount;  PSCSIWMIGUIDREGINFO  GuidList;  PSCSIWMI_QUERY_REGINFO  QueryWmiRegInfo;  PSCSIWMI_QUERY_DATABLOCK  QueryWmiDataBlock;  PSCSIWMI_SET_DATABLOCK  SetWmiDataBlock;  PSCSIWMI_SET_DATAITEM  SetWmiDataItem;  PSCSIWMI_EXECUTE_METHOD  ExecuteWmiMethod;  PSCSIWMI_FUNCTION_CONTROL  WmiFunctionControl;} SCSI_WMILIB_CONTEXT, *PSCSI_WMILIB_CONTEXT;SCSIPORTAPIBOOLEANDDKAPIScsiPortWmiDispatchFunction(  /*IN*/ PSCSI_WMILIB_CONTEXT  WmiLibInfo,  /*IN*/ UCHAR  MinorFunction,  /*IN*/ PVOID  DeviceContext,  /*IN*/ PSCSIWMI_REQUEST_CONTEXT  RequestContext,  /*IN*/ PVOID  DataPath,  /*IN*/ ULONG  BufferSize,  /*IN*/ PVOID  Buffer);#define ScsiPortWmiFireAdapterEvent(  \  HwDeviceExtension,                  \  Guid,                               \  InstanceIndex,                      \  EventDataSize,                      \  EventData)                          \    ScsiPortWmiFireLogicalUnitEvent(  \	  HwDeviceExtension,                \	  0xff,                             \	  0,                                \	  0,                                \	  Guid,                             \	  InstanceIndex,                    \	  EventDataSize,                    \	  EventData)/* * ULONG * ScsiPortWmiGetReturnSize( *   PSCSIWMI_REQUEST_CONTEXT  RequestContext); */#define ScsiPortWmiGetReturnSize(RequestContext) \  ((RequestContext)->ReturnSize)/* UCHAR  * ScsiPortWmiGetReturnStatus( *   PSCSIWMI_REQUEST_CONTEXT  RequestContext); */ #define ScsiPortWmiGetReturnStatus(RequestContext) \  ((RequestContext)->ReturnStatus)SCSIPORTAPIVOIDDDKAPIScsiPortWmiPostProcess(  /*IN*/ PSCSIWMI_REQUEST_CONTEXT  RequestContext,  /*IN*/ UCHAR  SrbStatus,  /*IN*/ ULONG  BufferUsed);SCSIPORTAPIVOIDDDKAPIScsiPortWmiFireLogicalUnitEvent(  /*IN*/ PVOID  HwDeviceExtension,  /*IN*/ UCHAR  PathId,  /*IN*/ UCHAR  TargetId,  /*IN*/ UCHAR  Lun,  /*IN*/ LPGUID  Guid,  /*IN*/ ULONG  InstanceIndex,  /*IN*/ ULONG  EventDataSize,  /*IN*/ PVOID  EventData);#pragma pack(pop)#ifdef __cplusplus}#endif#endif /* __SCSIWMI_H */

⌨️ 快捷键说明

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