39 ULONG i, TableCount, HeaderLength;
116 if (HeaderLength >=
sizeof(*
Header))
118 HeaderLength =
sizeof(*Header);
128 if (HeaderLength >=
sizeof(*
Header))
130 HeaderLength =
sizeof(*Header);
138 for (
i = 0;
i < TableCount;
i++)
226 EfiPrintf(
L"Progress Info: %s\r\n", ProgressInfo);
289 if (!(
Table) || !(EntryIndex))
345 while (
Index < NewCount)
348 if (!NewTable[
Index])
359 while (
Index < NewCount)
388 *
Count = 2 * NewCount;
473 Flags = Entry1->Flags;
474 if ((Entry1->Size != Entry2->Size) || (
Flags != Entry2->Flags))
481 ValueMatch = Entry1->Value == Entry2->Value;
486 ValueMatch = (
RtlCompareMemory(Entry1->Value, Entry2->Value, Entry1->Size) ==
639 HashLink = HashLinkHead->
Flink;
640 while (HashLink != HashLinkHead)
659 HashLink = HashLink->
Flink;
754 HashLink = HashLinkHead->
Flink;
755 while (HashLink != HashLinkHead)
768 HashLink = HashLink->
Flink;
793 PartialSum = (
unsigned __int16)PartialSum;
801 PartialSum = (
unsigned __int16)((PartialSum >> 16) + PartialSum);
810 PartialSum = (
unsigned __int16)((PartialSum >> 16) + PartialSum);
819 PartialSum = (
unsigned __int16)PartialSum;
835 #if defined(_M_IX86) || defined(_M_X64) 837 Archx86IsCpuidSupported (
851 return (((CallerFlags ^
Flags) >> 21) & 1) ^ 1;
860 #if defined(_M_IX86) || defined(_M_X64) 876 if ((CpuInfo[0] & 0xFFFFFF00) != 0x80000000)
894 EfiPrintf(
L"BlArchIsCpuIdFunctionSupported not implemented for this platform.\r\n");
906 #if defined(_M_IX86) || defined(_M_X64) 910 if (Archx86IsCpuidSupported())
918 EfiPrintf(
L"BlArchGetPerformanceCounter not implemented for this platform.\r\n");
930 #if defined(_M_IX86) || defined(_M_X64) 946 #if defined(_M_IX86) || defined(_M_X64) 948 CpuInfo.
Ecx = CpuInfo.
Edx;
978 #else // defined(_M_IX86) || defined(_M_X64) 979 EfiPrintf(
L"BlArchGetCpuVendor not implemented for this platform.\r\n");
VOID BmUpdateProgressInfo(_In_ PVOID Unknown, _In_ PWCHAR ProgressInfo)
NTSTATUS BlHtDelete(_In_ ULONG TableId, _In_ PBL_HASH_ENTRY Entry)
_In_ ULONG _In_ ULONG _In_ ULONG Length
NTSTATUS BlMmMapPhysicalAddressEx(_In_ PVOID *VirtualAddress, _In_ ULONG Attributes, _In_ ULONGLONG Size, _In_ PHYSICAL_ADDRESS PhysicalAddress)
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
_IRQL_requires_same_ _In_opt_ PVOID Argument1
BOOLEAN(* PBL_TBL_LOOKUP_ROUTINE)(_In_ PVOID Entry, _In_ PVOID Argument1, _In_ PVOID Argument2, _In_ PVOID Argument3, _In_ PVOID Argument4)
NTSTATUS(* PBL_TBL_SET_ROUTINE)(_In_ PVOID Entry)
#define STATUS_INVALID_PARAMETER
PVOID UtlMcUpdateMessageRoutine
ULONG Tables[ANYSIZE_ARRAY]
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG _In_opt_ PVOID Data
NTSTATUS BlHtStore(_In_ ULONG TableId, _In_ PBL_HASH_ENTRY Entry, _In_ PVOID Data, _In_ ULONG DataSize)
PBL_HASH_TABLE * HtTableArray
_In_ BOOLEAN _In_ ULONG _Out_ PULONG HashValue
VOID BlUtlUpdateProgress(_In_ ULONG Percentage, _Out_opt_ PBOOLEAN Completed)
PPC_QUAL unsigned long long __rdtsc(void)
IN PVOID IN PVOID IN USHORT IN USHORT Size
PVOID UtlProgressInfoRoutine
#define BL_UTL_CHECKSUM_NEGATE
#define InsertTailList(ListHead, Entry)
NTSTATUS BlHtLookup(_In_ ULONG TableId, _In_ PBL_HASH_ENTRY Entry, _Out_opt_ PBL_HASH_VALUE *Value)
ULONG DefaultHashFunction(_In_ PBL_HASH_ENTRY Entry, _In_ ULONG TableSize)
NTSTATUS BlMmFreeHeap(_In_ PVOID Buffer)
NTSTATUS TblDoNotPurgeEntry(_In_ PVOID Entry)
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
NTSTATUS(* PBL_TBL_MAP_ROUTINE)(_In_ PVOID Entry, _In_ ULONG EntryIndex)
PHYSICAL_ADDRESS Tables[ANYSIZE_ARRAY]
__INTRIN_INLINE uintptr_t __readeflags(void)
PVOID BlTblFindEntry(_In_ PVOID *Table, _In_ ULONG Count, _Out_ PULONG EntryIndex, _In_ PBL_TBL_LOOKUP_ROUTINE Callback, _In_ PVOID Argument1, _In_ PVOID Argument2, _In_ PVOID Argument3, _In_ PVOID Argument4)
PVOID BlMmAllocateHeap(_In_ SIZE_T Size)
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
DESCRIPTION_HEADER Header
NTSTATUS BlUtlRegisterProgressRoutine(VOID)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
PVOID UtlMcDisplayMessageRoutine
NTSTATUS BlTblSetEntry(_Inout_ PVOID **Table, _Inout_ PULONG Count, _In_ PVOID Entry, _Out_ PULONG EntryIndex, _In_ PBL_TBL_SET_ROUTINE Callback)
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
ULONG UtlCurrentPercentComplete
struct _LIST_ENTRY * Flink
NTSTATUS BlHtCreate(_In_ ULONG Size, _In_ PBL_HASH_TABLE_HASH_FUNCTION HashFunction, _In_ PBL_HASH_TABLE_COMPARE_FUNCTION CompareFunction, _Out_ PULONG Id)
ULONG(* PBL_HASH_TABLE_HASH_FUNCTION)(_In_ struct _BL_HASH_ENTRY *Entry, _In_ ULONG TableSize)
_Must_inspect_result_ _In_ ULONG Flags
InternalIoctlParams Argument4
BOOLEAN HtpCompareKeys(_In_ PBL_HASH_ENTRY Entry1, _In_ PBL_HASH_ENTRY Entry2)
#define NT_SUCCESS(StatCode)
_In_ WDFCOLLECTION _In_ ULONG Index
#define BL_UTL_CHECKSUM_UCHAR_BUFFER
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
NTSTATUS BlMmUnmapVirtualAddressEx(_In_ PVOID VirtualAddress, _In_ ULONGLONG Size)
NTSTATUS EfipGetRsdt(_Out_ PPHYSICAL_ADDRESS FoundRsdt)
#define STATUS_UNSUCCESSFUL
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
CPU_VENDORS BlArchGetCpuVendor(VOID)
__INTRIN_INLINE void __writeeflags(uintptr_t Value)
NTSTATUS BlUtlInitialize(VOID)
BOOLEAN(* PBL_HASH_TABLE_COMPARE_FUNCTION)(_In_ struct _BL_HASH_ENTRY *Entry1, _In_ struct _BL_HASH_ENTRY *Entry2)
NTSTATUS BlTblMap(_In_ PVOID *Table, _In_ ULONG Count, _In_ PBL_TBL_MAP_ROUTINE MapCallback)
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
BOOLEAN UtlProgressNeedsInfoUpdate
BOOLEAN BlArchIsCpuIdFunctionSupported(_In_ ULONG Function)
__INTRIN_INLINE void __cpuidex(int CPUInfo[4], int InfoType, int ECXValue)
PPC_QUAL void __cpuid(int CPUInfo[], const int InfoType)
#define BL_UTL_CHECKSUM_USHORT_BUFFER
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
ULONG UtlProgressGranularity
#define InitializeListHead(ListHead)
#define BL_UTL_CHECKSUM_COMPLEMENT
ULONG UtlNextUpdatePercentage
VOID EfiPrintf(_In_ PWCHAR Format,...)
ULONG BlUtlCheckSum(_In_ ULONG PartialSum, _In_ PUCHAR Buffer, _In_ ULONG Length, _In_ ULONG Flags)
_Must_inspect_result_ typedef _Out_ PULONG TableSize
VOID BmUpdateProgress(_In_ PVOID Unknown, _In_ ULONG Percent, _Out_ PBOOLEAN Completed)
#define RtlZeroMemory(Destination, Length)
VOID BlArchCpuId(_In_ ULONG Function, _In_ ULONG SubFunction, _Out_ PCPU_INFO Result)
#define RtlCopyMemory(Destination, Source, Length)
ULONGLONG BlArchGetPerformanceCounter(VOID)
NTSTATUS BlUtlGetAcpiTable(_Out_ PVOID *TableAddress, _In_ ULONG Signature)
static const WCHAR Signature[]
#define BL_HT_VALUE_IS_INLINE
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
base of all file and directory entries
#define RtlCompareMemory(s1, s2, l)
DESCRIPTION_HEADER Header