| Server IP : 209.209.40.120 / Your IP : 216.73.217.112 Web Server : Microsoft-IIS/10.0 System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586 User : NEWWWW$ ( 0) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/shared/ |
Upload File : |
/*++
Copyright (c) Microsoft Corporation. All rights reserved.
Module Name:
hwn.h
Abstract:
Header file that defines structures, prototypes and definitions required
by consumers of Hardware Notification services.
Environment:
Kernel mode or User mode
--*/
#ifndef __HWN_H__
#define __HWN_H__
#if (NTDDI_VERSION >= NTDDI_WIN8)
#ifdef __cplusplus
extern "C" {
#endif
//
// Define IOCTLs to get and set Hardware Notifications.
//
#define IOCTL_HWN_SET_STATE \
CTL_CODE(FILE_DEVICE_UNKNOWN, 0, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_HWN_GET_STATE \
CTL_CODE(FILE_DEVICE_UNKNOWN, 1, METHOD_BUFFERED, FILE_READ_ACCESS | \
FILE_WRITE_ACCESS)
DEFINE_GUID (HWN_DEVINTERFACE,
0x81ca6602, 0xdae3, 0x476f, 0x8e, 0x3a, 0x60, 0x76, 0x6b, 0x2f, 0xff, 0x1b);
DEFINE_GUID (HWN_DEVINTERFACE_VIBRATOR,
0x825e8fd3, 0x6467, 0x4a5b, 0xab, 0xfb, 0xbb, 0x01, 0x07, 0x34, 0xff, 0x4d);
DEFINE_GUID (HWN_DEVINTERFACE_NLED,
0x6b2a25e2, 0xaaf5, 0x482c, 0x99, 0xa5, 0x62, 0x05, 0xcd, 0xcc, 0x17, 0x6a);
#define HWN_SUPPORTED 0xAAAA
#define HWN_NOT_SUPPORTED 0x5555
#define HWN_CURRENT_MTE_NOT_SUPPORTED 0xFFFFFFFF
//
// The various states devices can be set to
//
typedef enum _HWN_STATE
{
HWN_OFF = 0,
HWN_ON = 1,
HWN_BLINK = 2,
HWN_TOTAL_STATES
} HWN_STATE;
//
// The various types of devices supported
//
typedef enum _HWN_TYPE
{
HWN_UNKNOWN = 0,
HWN_LED = 1,
HWN_VIBRATOR = 2,
HWN_TOTAL_TYPES
} HWN_TYPE;
//
// Defines the capabilities or settings a client driver may support.
// Specifically, it is used as the index to HwNSettings[] member of the
// HWN_SETTINGS structure.
//
typedef enum _HWN_SETTINGS_OPTIONS
{
HWN_INTENSITY = 0, // HwN intensity (0 - 100%)
HWN_PERIOD = 1, // HwN period in milliseconds
HWN_DUTY_CYCLE = 2, // HwN duty cycle (0 - 100%)
HWN_CYCLE_COUNT = 3, // HwN number of repetitions of cycle
HWN_CYCLE_GRANULARITY = 4, // HwN adjustment granularity - read only
HWN_CURRENT_MTE_RESERVED = 5, // HwN device current in mA for MTE use only
HWN_TOTAL_SETTINGS
} HWN_SETTINGS_OPTIONS;
//
// A structure for getting data from or setting data to a device
//
typedef struct _HWN_SETTINGS
{
ULONG HwNId; // HwN ID number, 0 is first
HWN_TYPE HwNType; // specifies type of a device
ULONG HwNSettings[HWN_TOTAL_SETTINGS]; // holds the current device's settings
HWN_STATE OffOnBlink; // 0-off, 1-on, 2-blink
} HWN_SETTINGS, *PHWN_SETTINGS;
#define HWN_SETTINGS_SIZE (sizeof(HWN_SETTINGS))
//
// Defines a structure for a header of each data packet
//
// Data packet format:
//
// |-------------------|
// | HWN_HEADER |
// |-------------------|
// | HWN_SETTINGS[0] |
// |-------------------|
// | HWN_SETTINGS[1] |
// |-------------------|
// | HWN_SETTINGS[N] |
// |-------------------|
//
typedef struct _HWN_HEADER
{
ULONG HwNPayloadSize; //Total size of a payload
ULONG HwNPayloadVersion; //Version number of a payload
ULONG HwNRequests; //Number of requests in a payload
HWN_SETTINGS HwNSettingsInfo[ANYSIZE_ARRAY];
} HWN_HEADER, *PHWN_HEADER;
#define HWN_HEADER_SIZE (sizeof(HWN_HEADER)-sizeof(HWN_SETTINGS))
#ifdef __cplusplus
}
#endif
#endif
#endif