* Annotate scsiwmi.h.

svn path=/trunk/; revision=59973
This commit is contained in:
Amine Khaldi 2013-09-03 12:04:47 +00:00
parent 62b8ac070f
commit 962e2b35b9

View file

@ -20,8 +20,10 @@
* *
*/ */
#ifndef __SCSIWMI_H #pragma once
#define __SCSIWMI_H
#ifndef _SCSIWMI_
#define _SCSIWMI_
#include "srb.h" #include "srb.h"
@ -32,12 +34,12 @@ extern "C" {
#pragma pack(push,4) #pragma pack(push,4)
typedef struct _SCSIWMI_REQUEST_CONTEXT { typedef struct _SCSIWMI_REQUEST_CONTEXT {
PVOID UserContext; PVOID UserContext;
ULONG BufferSize; ULONG BufferSize;
PUCHAR Buffer; PUCHAR Buffer;
UCHAR MinorFunction; UCHAR MinorFunction;
UCHAR ReturnStatus; UCHAR ReturnStatus;
ULONG ReturnSize; ULONG ReturnSize;
} SCSIWMI_REQUEST_CONTEXT, *PSCSIWMI_REQUEST_CONTEXT; } SCSIWMI_REQUEST_CONTEXT, *PSCSIWMI_REQUEST_CONTEXT;
#ifdef _GUID_DEFINED #ifdef _GUID_DEFINED
@ -47,129 +49,142 @@ typedef struct _SCSIWMI_REQUEST_CONTEXT {
#if ! (defined _GUID_DEFINED || defined GUID_DEFINED) #if ! (defined _GUID_DEFINED || defined GUID_DEFINED)
#define GUID_DEFINED #define GUID_DEFINED
typedef struct _GUID { typedef struct _GUID {
unsigned long Data1; unsigned long Data1;
unsigned short Data2; unsigned short Data2;
unsigned short Data3; unsigned short Data3;
unsigned char Data4[ 8 ]; unsigned char Data4[8];
} GUID; } GUID;
#endif #endif
typedef struct _SCSIWMIGUIDREGINFO { typedef struct _SCSIWMIGUIDREGINFO {
LPCGUID Guid; LPCGUID Guid;
ULONG InstanceCount; ULONG InstanceCount;
ULONG Flags; ULONG Flags;
} SCSIWMIGUIDREGINFO, *PSCSIWMIGUIDREGINFO; } SCSIWMIGUIDREGINFO, *PSCSIWMIGUIDREGINFO;
typedef UCHAR typedef
_Must_inspect_result_
UCHAR
(NTAPI *PSCSIWMI_QUERY_REGINFO)( (NTAPI *PSCSIWMI_QUERY_REGINFO)(
IN PVOID DeviceContext, _In_ PVOID DeviceContext,
IN PSCSIWMI_REQUEST_CONTEXT RequestContext, _In_ PSCSIWMI_REQUEST_CONTEXT RequestContext,
OUT PWCHAR *MofResourceName); _Out_ PWCHAR *MofResourceName);
typedef BOOLEAN typedef
_Must_inspect_result_
BOOLEAN
(NTAPI *PSCSIWMI_QUERY_DATABLOCK)( (NTAPI *PSCSIWMI_QUERY_DATABLOCK)(
IN PVOID Context, _In_ PVOID Context,
IN PSCSIWMI_REQUEST_CONTEXT DispatchContext, _In_ PSCSIWMI_REQUEST_CONTEXT DispatchContext,
IN ULONG GuidIndex, _In_ ULONG GuidIndex,
IN ULONG InstanceIndex, _In_ ULONG InstanceIndex,
IN ULONG InstanceCount, _In_ ULONG InstanceCount,
IN OUT PULONG InstanceLengthArray, _Inout_ PULONG InstanceLengthArray,
IN ULONG BufferAvail, _In_ ULONG BufferAvail,
OUT PUCHAR Buffer); _Out_writes_bytes_(BufferAvail) PUCHAR Buffer);
typedef BOOLEAN typedef
_Must_inspect_result_
BOOLEAN
(NTAPI *PSCSIWMI_SET_DATABLOCK)( (NTAPI *PSCSIWMI_SET_DATABLOCK)(
IN PVOID DeviceContext, _In_ PVOID DeviceContext,
IN PSCSIWMI_REQUEST_CONTEXT RequestContext, _In_ PSCSIWMI_REQUEST_CONTEXT RequestContext,
IN ULONG GuidIndex, _In_ ULONG GuidIndex,
IN ULONG InstanceIndex, _In_ ULONG InstanceIndex,
IN ULONG BufferSize, _In_ ULONG BufferSize,
IN PUCHAR Buffer); _In_reads_bytes_(BufferSize) PUCHAR Buffer);
typedef BOOLEAN typedef
_Must_inspect_result_
BOOLEAN
(NTAPI *PSCSIWMI_SET_DATAITEM)( (NTAPI *PSCSIWMI_SET_DATAITEM)(
IN PVOID DeviceContext, _In_ PVOID DeviceContext,
IN PSCSIWMI_REQUEST_CONTEXT RequestContext, _In_ PSCSIWMI_REQUEST_CONTEXT RequestContext,
IN ULONG GuidIndex, _In_ ULONG GuidIndex,
IN ULONG InstanceIndex, _In_ ULONG InstanceIndex,
IN ULONG DataItemId, _In_ ULONG DataItemId,
IN ULONG BufferSize, _In_ ULONG BufferSize,
IN PUCHAR Buffer); _In_reads_bytes_(BufferSize) PUCHAR Buffer);
typedef BOOLEAN typedef
_Must_inspect_result_
BOOLEAN
(NTAPI *PSCSIWMI_EXECUTE_METHOD)( (NTAPI *PSCSIWMI_EXECUTE_METHOD)(
IN PVOID DeviceContext, _In_ PVOID DeviceContext,
IN PSCSIWMI_REQUEST_CONTEXT RequestContext, _In_ PSCSIWMI_REQUEST_CONTEXT RequestContext,
IN ULONG GuidIndex, _In_ ULONG GuidIndex,
IN ULONG InstanceIndex, _In_ ULONG InstanceIndex,
IN ULONG MethodId, _In_ ULONG MethodId,
IN ULONG InBufferSize, _In_ ULONG InBufferSize,
IN ULONG OutBufferSize, _In_ ULONG OutBufferSize,
IN OUT PUCHAR Buffer); _Inout_updates_bytes_to_(InBufferSize, OutBufferSize) PUCHAR Buffer);
typedef enum _SCSIWMI_ENABLE_DISABLE_CONTROL { typedef enum _SCSIWMI_ENABLE_DISABLE_CONTROL {
ScsiWmiEventControl, ScsiWmiEventControl,
ScsiWmiDataBlockControl ScsiWmiDataBlockControl
} SCSIWMI_ENABLE_DISABLE_CONTROL; } SCSIWMI_ENABLE_DISABLE_CONTROL;
typedef BOOLEAN typedef
_Must_inspect_result_
BOOLEAN
(NTAPI *PSCSIWMI_FUNCTION_CONTROL)( (NTAPI *PSCSIWMI_FUNCTION_CONTROL)(
IN PVOID DeviceContext, _In_ PVOID DeviceContext,
IN PSCSIWMI_REQUEST_CONTEXT RequestContext, _In_ PSCSIWMI_REQUEST_CONTEXT RequestContext,
IN ULONG GuidIndex, _In_ ULONG GuidIndex,
IN SCSIWMI_ENABLE_DISABLE_CONTROL Function, _In_ SCSIWMI_ENABLE_DISABLE_CONTROL Function,
IN BOOLEAN Enable); _In_ BOOLEAN Enable);
typedef struct _SCSIWMILIB_CONTEXT { typedef struct _SCSIWMILIB_CONTEXT {
ULONG GuidCount; ULONG GuidCount;
PSCSIWMIGUIDREGINFO GuidList; PSCSIWMIGUIDREGINFO GuidList;
PSCSIWMI_QUERY_REGINFO QueryWmiRegInfo; PSCSIWMI_QUERY_REGINFO QueryWmiRegInfo;
PSCSIWMI_QUERY_DATABLOCK QueryWmiDataBlock; PSCSIWMI_QUERY_DATABLOCK QueryWmiDataBlock;
PSCSIWMI_SET_DATABLOCK SetWmiDataBlock; PSCSIWMI_SET_DATABLOCK SetWmiDataBlock;
PSCSIWMI_SET_DATAITEM SetWmiDataItem; PSCSIWMI_SET_DATAITEM SetWmiDataItem;
PSCSIWMI_EXECUTE_METHOD ExecuteWmiMethod; PSCSIWMI_EXECUTE_METHOD ExecuteWmiMethod;
PSCSIWMI_FUNCTION_CONTROL WmiFunctionControl; PSCSIWMI_FUNCTION_CONTROL WmiFunctionControl;
} SCSI_WMILIB_CONTEXT, *PSCSI_WMILIB_CONTEXT; } SCSI_WMILIB_CONTEXT, *PSCSI_WMILIB_CONTEXT;
_Must_inspect_result_
SCSIPORTAPI SCSIPORTAPI
BOOLEAN BOOLEAN
NTAPI NTAPI
ScsiPortWmiDispatchFunction( ScsiPortWmiDispatchFunction(
IN PSCSI_WMILIB_CONTEXT WmiLibInfo, _In_ PSCSI_WMILIB_CONTEXT WmiLibInfo,
IN UCHAR MinorFunction, _In_ UCHAR MinorFunction,
IN PVOID DeviceContext, _In_ PVOID DeviceContext,
IN PSCSIWMI_REQUEST_CONTEXT RequestContext, _In_ PSCSIWMI_REQUEST_CONTEXT RequestContext,
IN PVOID DataPath, _In_ PVOID DataPath,
IN ULONG BufferSize, _In_ ULONG BufferSize,
IN PVOID Buffer); _In_ PVOID Buffer);
#define ScsiPortWmiFireAdapterEvent( \ #define ScsiPortWmiFireAdapterEvent( \
HwDeviceExtension, \ HwDeviceExtension, \
Guid, \ Guid, \
InstanceIndex, \ InstanceIndex, \
EventDataSize, \ EventDataSize, \
EventData) \ EventData) \
ScsiPortWmiFireLogicalUnitEvent( \ ScsiPortWmiFireLogicalUnitEvent( \
HwDeviceExtension, \ HwDeviceExtension, \
0xff, \ 0xff, \
0, \ 0, \
0, \ 0, \
Guid, \ Guid, \
InstanceIndex, \ InstanceIndex, \
EventDataSize, \ EventDataSize, \
EventData) EventData)
/* /*
* ULONG * ULONG
* ScsiPortWmiGetReturnSize( * ScsiPortWmiGetReturnSize(
* PSCSIWMI_REQUEST_CONTEXT RequestContext); * PSCSIWMI_REQUEST_CONTEXT RequestContext);
*/ */
#define ScsiPortWmiGetReturnSize(RequestContext) \ #define ScsiPortWmiGetReturnSize(RequestContext) \
((RequestContext)->ReturnSize) ((RequestContext)->ReturnSize)
/* UCHAR /* UCHAR
* ScsiPortWmiGetReturnStatus( * ScsiPortWmiGetReturnStatus(
* PSCSIWMI_REQUEST_CONTEXT RequestContext); * PSCSIWMI_REQUEST_CONTEXT RequestContext);
*/ */
#define ScsiPortWmiGetReturnStatus(RequestContext) \ #define ScsiPortWmiGetReturnStatus(RequestContext) \
((RequestContext)->ReturnStatus) ((RequestContext)->ReturnStatus)
@ -178,22 +193,22 @@ SCSIPORTAPI
VOID VOID
NTAPI NTAPI
ScsiPortWmiPostProcess( ScsiPortWmiPostProcess(
IN PSCSIWMI_REQUEST_CONTEXT RequestContext, _Inout_ PSCSIWMI_REQUEST_CONTEXT RequestContext,
IN UCHAR SrbStatus, _In_ UCHAR SrbStatus,
IN ULONG BufferUsed); _In_ ULONG BufferUsed);
SCSIPORTAPI SCSIPORTAPI
VOID VOID
NTAPI NTAPI
ScsiPortWmiFireLogicalUnitEvent( ScsiPortWmiFireLogicalUnitEvent(
IN PVOID HwDeviceExtension, _In_ PVOID HwDeviceExtension,
IN UCHAR PathId, _In_ UCHAR PathId,
IN UCHAR TargetId, _In_ UCHAR TargetId,
IN UCHAR Lun, _In_ UCHAR Lun,
IN LPGUID Guid, _In_ LPGUID Guid,
IN ULONG InstanceIndex, _In_ ULONG InstanceIndex,
IN ULONG EventDataSize, _In_ ULONG EventDataSize,
IN PVOID EventData); _In_ PVOID EventData);
#pragma pack(pop) #pragma pack(pop)
@ -201,4 +216,4 @@ ScsiPortWmiFireLogicalUnitEvent(
} }
#endif #endif
#endif /* __SCSIWMI_H */ #endif /* _SCSIWMI_ */