/* * scsiwmi.h SCSI WMI definitions * * ========================================================================= * * Open Watcom Project * * Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved. * * This file is automatically generated. Do not edit directly. * * ========================================================================= */ #ifndef _SCSIWMI_ #define _SCSIWMI_ #ifndef _ENABLE_AUTODEPEND #pragma read_only_file; #endif #ifdef __cplusplus extern "C" { #endif /* WMI registration flags */ #define WMIREG_FLAG_CALL_BY_NAME 0x40000000L /* SCSI WMI request context */ typedef struct { PVOID UserContext; ULONG BufferSize; PUCHAR Buffer; UCHAR MinorFunction; UCHAR ReturnStatus; ULONG ReturnSize; } SCSIWMI_REQUEST_CONTEXT; typedef SCSIWMI_REQUEST_CONTEXT *PSCSIWMI_REQUEST_CONTEXT; /* SCSI WMI GUID registration information */ typedef struct { LPCGUID Guid; ULONG InstanceCount; ULONG Flags; } SCSIWMIGUIDREGINFO; typedef SCSIWMIGUIDREGINFO *PSCSIWMIGUIDREGINFO; /* SCSI WMI enable/disable control */ typedef enum { ScsiWmiEventControl = 0, ScsiWmiDataBlockControl = 1 } SCSIWMI_ENABLE_DISABLE_CONTROL; /* SCSI WMI callbacks */ typedef UCHAR (NTAPI *PSCSIWMI_QUERY_REGINFO)( PVOID, PSCSIWMI_REQUEST_CONTEXT, PWCHAR ); typedef BOOLEAN (NTAPI *PSCSIWMI_QUERY_DATABLOCK)( PVOID, PSCSIWMI_REQUEST_CONTEXT, ULONG, ULONG, ULONG, PULONG, ULONG, PUCHAR ); typedef BOOLEAN (NTAPI *PSCSIWMI_SET_DATABLOCK)( PVOID, PSCSIWMI_REQUEST_CONTEXT, ULONG, ULONG, ULONG, PUCHAR ); typedef BOOLEAN (NTAPI *PSCSIWMI_SET_DATAITEM)( PVOID, PSCSIWMI_REQUEST_CONTEXT, ULONG, ULONG, ULONG, ULONG, PUCHAR ); typedef BOOLEAN (NTAPI *PSCSIWMI_EXECUTE_METHOD)( PVOID, PSCSIWMI_REQUEST_CONTEXT, ULONG, ULONG, ULONG, ULONG, ULONG, PUCHAR ); typedef BOOLEAN (NTAPI *PSCSIWMI_FUNCTION_CONTROL)( PVOID, PSCSIWMI_REQUEST_CONTEXT, ULONG, SCSIWMI_ENABLE_DISABLE_CONTROL, BOOLEAN ); /* SCSI WMILIB context */ 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; typedef SCSI_WMILIB_CONTEXT *PSCSI_WMILIB_CONTEXT; /* Functions implemented as macros */ #define ScsiPortWmiGetReturnStatus( x ) ((x)->ReturnStatus) #define ScsiPortWmiGetReturnSize( x ) ((x)->ReturnSize) #if (NTDDI_VERSION >= 0x05020000) #define ScsiPortWmiIsQueryAllData( x ) ((x)->MinorFunction == WMI_GET_ALL_DATA) #endif #ifdef __cplusplus } /* extern "C" */ #endif #endif /* _SCSIWMI_ */