newlib/winsup/w32api/include/ddk/scsiwmi.h
Danny Smith 037c11e868 * include/ddk/hidusage.h: Remove unneccessary #pragma pack's.
* include/ddk/miniport.h (EMULATOR_PORT_ACCESS_TYPE): Define
	before using.
	(VIDEO_ACCESS_RANGE): Guard against prior definition.
	* include/ddk/minitape.h (INQUIRYDATA): Guard against prior
	definition.
	* include/ddk/ndis.h (DECLARE_UNKNOWN_PROTOTYPE): Correct macro.
	* include/ddk/ndisguid.h: Remove unneccessary #pragma pack's.
	* include/ddk/scsi.h (INQUIRYDATA): Guard against prior
	definition.
	* include/ddk/scsiwmi.h (GUID): Define if not already done.
	(LPCGUID): Likewise.
	* include/ddk/tdi.h: Close "Listen flags" comment.
	* include/ddk/tdistat.h: Remove unneccessary #pragma pack's.
	* include/ddk/video.h:	Add #pragma pack(push,4) to balance.
	(VIDEO_ACCESS_RANGE): Guard against prior definition.
	* include/ddk/videoagp.h:Add #pragma pack(push,4) to balance.
	* include/ddk/win2k.h: Likewise.
	* include/ddk/winddi.h: Likewise.
	* include/ddk/winddk.h: Likewise.
	* include/ddk/winnt4.h: Likewise.
	* include/ddk/ws2san.h: Likewise.
	* include/ddk/xfilter.h: Remove unbalanced #pragma pack(pop).
	* include/ddk/video.h: Don't process rest of file ifdef
	__WINDDI_H.
	* include/ddk/winddi.h: Don't process rest of file ifdef
	__VIDEO_H.
	* include/ddk/usb.h: Don't process rest of file ifdef
	__USBDI_H.
	* include/ddk/usbdi.h: Don't process rest of file ifdef
	__USB_H.
	* include/ddk/usbcamdi.h: Don't process rest of file if
	!defined(__USB_H) && !defined(__USBDI_H)
2002-12-19 01:34:26 +00:00

212 lines
4.9 KiB
C

/*
* 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 __cplusplus
extern "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;
#ifndef _GUID_DEFINED
#define _GUID_DEFINED
typedef struct _GUID {
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[ 8 ];
} GUID;
#endif
#ifndef _LPCGUID_DEFINED
#define _LPCGUID_DEFINED
typedef const GUID *LPCGUID;
#endif
typedef 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;
SCSIPORTAPI
BOOLEAN
DDKAPI
ScsiPortWmiDispatchFunction(
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)
SCSIPORTAPI
VOID
DDKAPI
ScsiPortWmiPostProcess(
IN PSCSIWMI_REQUEST_CONTEXT RequestContext,
IN UCHAR SrbStatus,
IN ULONG BufferUsed);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortWmiFireLogicalUnitEvent(
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 */