/*++
RioGamepad — driver-wide declarations.
--*/

#pragma once

#include <ntddk.h>
#include <wdf.h>
#include <vhf.h>     // VHF API; also defines HID_XFER_PACKET if hidclass.h absent
#include "Public.h"

//
// Per-device context: the VHF handle for the virtual HID device.
//
typedef struct _DEVICE_CONTEXT
{
    VHFHANDLE VhfHandle;
} DEVICE_CONTEXT, *PDEVICE_CONTEXT;

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(DEVICE_CONTEXT, DeviceGetContext)

//
// WDF event callbacks.
//
DRIVER_INITIALIZE DriverEntry;
EVT_WDF_DRIVER_DEVICE_ADD RioGamepadEvtDeviceAdd;
EVT_WDF_DEVICE_D0_ENTRY RioGamepadEvtDeviceD0Entry;
EVT_WDF_OBJECT_CONTEXT_CLEANUP RioGamepadEvtDeviceCleanup;
EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL RioGamepadEvtIoDeviceControl;
