mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-15 19:09:58 +08:00
6ac7b97610
d4iface.h, ddkmapi.h, hidclass.h, hidpi.h, hidusage.h, mcd.h, miniport.h, minitape.h, mountdev.h, mountmgr.h, ndis.h, ndisquid.h, ndistapi.h, ndisvan.h, netevent.h, netpnp.h, netdev.h, ntapi.h, ntdd8042.h, ntddbeep.h, ntddcdrm.h, ntddcdvd.h, ntddchgr.h, ntdddisk.h, ntddk.h, ntddkbd.h, ntddmou.h, ntddndis.h, ntddpar.h, ntddpcm.h, ntddscsi.h, ntddser.h, ntddstor.h, ntddtape.h, ntddtdi.h, ntddvdeo.h, ntddvol.h, ntifs.h, ntpoapi.h, ntstatus.h, parallel.h, pfhook.h, poclass.h, scsi.h, scsiscan.h, scsiwmi.h, smbus.h, srb.h, storport.h, tdi.h, tdiinfo.h, tdikrnl.h, tdistat.h, tvout.h, upssvc.h, usb.h, usb100.h, usbcamdi.h, usbdi.h, usbioctl.h, usbiodef.h, usbscan.h, usbuser.h, video.h, videoagp.h, win2k.h, winddi.h, winddk.h, winnt4.h, winxp.h, ws2san.h, xfilter.h): Fix typo in disclaimer comment.
197 lines
4.6 KiB
C
197 lines
4.6 KiB
C
/*
|
|
* scsiwmi.h
|
|
*
|
|
* SCSI WMILIB interface.
|
|
*
|
|
* This file is part of the MinGW 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;
|
|
|
|
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 */
|