You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.3 KiB
63 lines
1.3 KiB
#ifndef INTERFACE_H
|
|
#define INTERFACE_H
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(*PHPS_REGISTER_INTERRUPT)(
|
|
IN PVOID Context,
|
|
IN PKSERVICE_ROUTINE ServiceRoutine,
|
|
IN PVOID ServiceContext
|
|
);
|
|
|
|
typedef
|
|
VOID
|
|
(*PHPS_UNREGISTER_INTERRUPT)(
|
|
IN PVOID Context
|
|
);
|
|
|
|
typedef
|
|
BOOLEAN
|
|
(*PHPS_SYNCHRONIZE_EXECUTION)(
|
|
IN PVOID Context,
|
|
IN PKSYNCHRONIZE_ROUTINE SynchronizeRoutine,
|
|
IN PVOID SynchronizeContext
|
|
);
|
|
|
|
typedef struct _HPS_REGISTER_INTERRUPT_INTERFACE {
|
|
|
|
|
|
USHORT Size;
|
|
USHORT Version;
|
|
PVOID Context;
|
|
PINTERFACE_REFERENCE InterfaceReference;
|
|
PINTERFACE_DEREFERENCE InterfaceDereference;
|
|
|
|
PHPS_REGISTER_INTERRUPT ConnectISR;
|
|
PHPS_UNREGISTER_INTERRUPT DisconnectISR;
|
|
PHPS_SYNCHRONIZE_EXECUTION SyncExecutionRoutine;
|
|
|
|
|
|
} HPS_REGISTER_INTERRUPT_INTERFACE, *PHPS_REGISTER_INTERRUPT_INTERFACE;
|
|
|
|
typedef
|
|
VOID
|
|
(*PHPS_READWRITE_BUFFER)(
|
|
IN PUCHAR Register,
|
|
IN PUCHAR Buffer,
|
|
IN ULONG Count
|
|
);
|
|
|
|
typedef struct _HPS_MEMORY_INTERFACE {
|
|
|
|
USHORT Size;
|
|
USHORT Version;
|
|
PVOID Context;
|
|
PINTERFACE_REFERENCE InterfaceReference;
|
|
PINTERFACE_DEREFERENCE InterfaceDereference;
|
|
|
|
PHPS_READWRITE_BUFFER ReadRegister;
|
|
PHPS_READWRITE_BUFFER WriteRegister;
|
|
|
|
} HPS_MEMORY_INTERFACE, *PHPS_MEMORY_INTERFACE;
|
|
|
|
#endif
|