Files
2023-03-06 22:56:13 +08:00

33 lines
1.0 KiB
C

#pragma once
typedef struct _EX_HOST_BINDING {
USHORT ExtensionId;
USHORT ExtensionVersion;
USHORT FunctionCount;
} EX_HOST_BINDING;
typedef DWORD_PTR PEX_HOST_BIND_NOTIFICATION;
typedef struct _EX_HOST_PARAMETERS {
EX_HOST_BINDING HostBinding;
POOL_TYPE PoolType;
PVOID HostTable;
PEX_HOST_BIND_NOTIFICATION BindNotification;
PVOID BindNotificationContext;
} EX_HOST_PARAMETERS, * PEX_HOST_PARAMETERS;
typedef struct _EX_HOST {
LIST_ENTRY HostListEntry;
volatile LONG RefCounter;
EX_HOST_PARAMETERS HostParameters;
EX_RUNDOWN_REF RundownProtection;
EX_PUSH_LOCK PushLock;
PVOID ExtensionTable;
ULONG Flags;
} EX_HOST, * PEX_HOST;
struct WinExtHosts final {
static ULONG GetCount(PLIST_ENTRY pExpHostList);
static bool Enum(PLIST_ENTRY pExpHostList, WinExtHostInfo* pInfo);
static bool EnumExtTable(ExtHostData* pData, PVOID* pInfo);
};