mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Merge pull request #3786 from fabiansperber/fix-d3d11-infoqueue
Fix d3d11 IInfoQueue_VTable & Add LoadLibraryExW
This commit is contained in:
@@ -413,6 +413,7 @@ foreign kernel32 {
|
|||||||
LoadLibraryW :: proc(c_str: LPCWSTR) -> HMODULE ---
|
LoadLibraryW :: proc(c_str: LPCWSTR) -> HMODULE ---
|
||||||
FreeLibrary :: proc(h: HMODULE) -> BOOL ---
|
FreeLibrary :: proc(h: HMODULE) -> BOOL ---
|
||||||
GetProcAddress :: proc(h: HMODULE, c_str: LPCSTR) -> rawptr ---
|
GetProcAddress :: proc(h: HMODULE, c_str: LPCSTR) -> rawptr ---
|
||||||
|
LoadLibraryExW :: proc(c_str: LPCWSTR, file: HANDLE, flags: LoadLibraryEx_Flags) -> HMODULE ---
|
||||||
|
|
||||||
|
|
||||||
GetFullPathNameW :: proc(filename: LPCWSTR, buffer_length: DWORD, buffer: LPCWSTR, file_part: ^LPCWSTR) -> DWORD ---
|
GetFullPathNameW :: proc(filename: LPCWSTR, buffer_length: DWORD, buffer: LPCWSTR, file_part: ^LPCWSTR) -> DWORD ---
|
||||||
|
|||||||
@@ -2674,6 +2674,22 @@ OSVERSIONINFOEXW :: struct {
|
|||||||
wReserved: UCHAR,
|
wReserved: UCHAR,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LoadLibraryEx_Flag :: enum DWORD {
|
||||||
|
LOAD_LIBRARY_AS_DATAFILE = 1, // 1 << 1: 0x0002,
|
||||||
|
LOAD_WITH_ALTERED_SEARCH_PATH = 3, // 1 << 3: 0x0008,
|
||||||
|
LOAD_IGNORE_CODE_AUTHZ_LEVEL = 4, // 1 << 4: 0x0010,
|
||||||
|
LOAD_LIBRARY_AS_IMAGE_RESOURCE = 5, // 1 << 5: 0x0020,
|
||||||
|
LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE = 6, // 1 << 6: 0x0040,
|
||||||
|
LOAD_LIBRARY_REQUIRE_SIGNED_TARGET = 7, // 1 << 7: 0x0080,
|
||||||
|
LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR = 8, // 1 << 8: 0x0100,
|
||||||
|
LOAD_LIBRARY_SEARCH_APPLICATION_DIR = 9, // 1 << 9: 0x0200,
|
||||||
|
LOAD_LIBRARY_SEARCH_USER_DIRS = 10, // 1 << 10: 0x0400,
|
||||||
|
LOAD_LIBRARY_SEARCH_SYSTEM32 = 11, // 1 << 11: 0x0800,
|
||||||
|
LOAD_LIBRARY_SEARCH_DEFAULT_DIRS = 12, // 1 << 12: 0x1000,
|
||||||
|
LOAD_LIBRARY_SAFE_CURRENT_DIRS = 13, // 1 << 13: 0x2000,
|
||||||
|
}
|
||||||
|
LoadLibraryEx_Flags :: distinct bit_set[LoadLibraryEx_Flag]
|
||||||
|
|
||||||
// https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-quota_limits
|
// https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-quota_limits
|
||||||
// Used in LogonUserExW
|
// Used in LogonUserExW
|
||||||
PQUOTA_LIMITS :: struct {
|
PQUOTA_LIMITS :: struct {
|
||||||
|
|||||||
Vendored
+24
-22
@@ -3775,39 +3775,41 @@ MESSAGE :: struct {
|
|||||||
|
|
||||||
IInfoQueue_VTable :: struct {
|
IInfoQueue_VTable :: struct {
|
||||||
using iunkown_vtable: IUnknown_VTable,
|
using iunkown_vtable: IUnknown_VTable,
|
||||||
AddApplicationMessage: proc "system" (this: ^IInfoQueue, Severity: MESSAGE_SEVERITY, pDescription: cstring) -> HRESULT,
|
SetMessageCountLimit: proc "system" (this: ^IInfoQueue, MessageCountLimit: u64) -> HRESULT,
|
||||||
AddMessage: proc "system" (this: ^IInfoQueue, Category: MESSAGE_CATEGORY, Severity: MESSAGE_SEVERITY, ID: MESSAGE_ID, pDescription: cstring) -> HRESULT,
|
|
||||||
AddRetrievalFilterEntries: proc "system" (this: ^IInfoQueue, pFilter: ^INFO_QUEUE_FILTER) -> HRESULT,
|
|
||||||
AddStorageFilterEntries: proc "system" (this: ^IInfoQueue, pFilter: ^INFO_QUEUE_FILTER) -> HRESULT,
|
|
||||||
ClearRetrievalFilter: proc "system" (this: ^IInfoQueue),
|
|
||||||
ClearStorageFilter: proc "system" (this: ^IInfoQueue),
|
|
||||||
ClearStoredMessages: proc "system" (this: ^IInfoQueue),
|
ClearStoredMessages: proc "system" (this: ^IInfoQueue),
|
||||||
GetBreakOnCategory: proc "system" (this: ^IInfoQueue, Category: MESSAGE_CATEGORY) -> BOOL,
|
|
||||||
GetBreakOnID: proc "system" (this: ^IInfoQueue, ID: MESSAGE_ID) -> BOOL,
|
|
||||||
GetBreakOnSeverity: proc "system" (this: ^IInfoQueue, Severity: MESSAGE_SEVERITY) -> BOOL,
|
|
||||||
GetMessage: proc "system" (this: ^IInfoQueue, MessageIndex: u64, pMessage: ^MESSAGE, pMessageByteLength: ^SIZE_T) -> HRESULT,
|
GetMessage: proc "system" (this: ^IInfoQueue, MessageIndex: u64, pMessage: ^MESSAGE, pMessageByteLength: ^SIZE_T) -> HRESULT,
|
||||||
GetMessageCountLimit: proc "system" (this: ^IInfoQueue) -> u64,
|
|
||||||
GetMuteDebugOutput: proc "system" (this: ^IInfoQueue) -> BOOL,
|
|
||||||
GetNumMessagesAllowedByStorageFilter: proc "system" (this: ^IInfoQueue) -> u64,
|
GetNumMessagesAllowedByStorageFilter: proc "system" (this: ^IInfoQueue) -> u64,
|
||||||
GetNumMessagesDeniedByStorageFilter: proc "system" (this: ^IInfoQueue) -> u64,
|
GetNumMessagesDeniedByStorageFilter: proc "system" (this: ^IInfoQueue) -> u64,
|
||||||
GetNumMessagesDiscardedByMessageCountLimit: proc "system" (this: ^IInfoQueue) -> u64,
|
|
||||||
GetNumStoredMessages: proc "system" (this: ^IInfoQueue) -> u64,
|
GetNumStoredMessages: proc "system" (this: ^IInfoQueue) -> u64,
|
||||||
GetNumStoredMessagesAllowedByRetrievalFilter: proc "system" (this: ^IInfoQueue) -> u64,
|
GetNumStoredMessagesAllowedByRetrievalFilter: proc "system" (this: ^IInfoQueue) -> u64,
|
||||||
GetRetrievalFilter: proc "system" (this: ^IInfoQueue, pFilter: ^INFO_QUEUE_FILTER, pFilterByteLength: ^SIZE_T) -> HRESULT,
|
GetNumMessagesDiscardedByMessageCountLimit: proc "system" (this: ^IInfoQueue) -> u64,
|
||||||
GetRetrievalFilterStackSize: proc "system" (this: ^IInfoQueue) -> u64,
|
GetMessageCountLimit: proc "system" (this: ^IInfoQueue) -> u64,
|
||||||
|
AddStorageFilterEntries: proc "system" (this: ^IInfoQueue, pFilter: ^INFO_QUEUE_FILTER) -> HRESULT,
|
||||||
GetStorageFilter: proc "system" (this: ^IInfoQueue, pFilter: ^INFO_QUEUE_FILTER, pFilterByteLength: ^SIZE_T) -> HRESULT,
|
GetStorageFilter: proc "system" (this: ^IInfoQueue, pFilter: ^INFO_QUEUE_FILTER, pFilterByteLength: ^SIZE_T) -> HRESULT,
|
||||||
GetStorageFilterStackSize: proc "system" (this: ^IInfoQueue) -> u64,
|
ClearStorageFilter: proc "system" (this: ^IInfoQueue),
|
||||||
PopRetrievalFilter: proc "system" (this: ^IInfoQueue),
|
|
||||||
PopStorageFilter: proc "system" (this: ^IInfoQueue),
|
|
||||||
PushCopyOfRetrievalFilter: proc "system" (this: ^IInfoQueue) -> HRESULT,
|
|
||||||
PushCopyOfStorageFilter: proc "system" (this: ^IInfoQueue) -> HRESULT,
|
|
||||||
PushEmptyRetrievalFilter: proc "system" (this: ^IInfoQueue) -> HRESULT,
|
|
||||||
PushEmptyStorageFilter: proc "system" (this: ^IInfoQueue) -> HRESULT,
|
PushEmptyStorageFilter: proc "system" (this: ^IInfoQueue) -> HRESULT,
|
||||||
|
PushCopyOfStorageFilter: proc "system" (this: ^IInfoQueue) -> HRESULT,
|
||||||
|
PushStorageFilter: proc "system" (this: ^IInfoQueue, pFilter: ^INFO_QUEUE_FILTER) -> HRESULT,
|
||||||
|
PopStorageFilter: proc "system" (this: ^IInfoQueue),
|
||||||
|
GetStorageFilterStackSize: proc "system" (this: ^IInfoQueue) -> u64,
|
||||||
|
AddRetrievalFilterEntries: proc "system" (this: ^IInfoQueue, pFilter: ^INFO_QUEUE_FILTER) -> HRESULT,
|
||||||
|
GetRetrievalFilter: proc "system" (this: ^IInfoQueue, pFilter: ^INFO_QUEUE_FILTER, pFilterByteLength: ^SIZE_T) -> HRESULT,
|
||||||
|
ClearRetrievalFilter: proc "system" (this: ^IInfoQueue),
|
||||||
|
PushEmptyRetrievalFilter: proc "system" (this: ^IInfoQueue) -> HRESULT,
|
||||||
|
PushCopyOfRetrievalFilter: proc "system" (this: ^IInfoQueue) -> HRESULT,
|
||||||
|
PushRetrievalFilter: proc "system" (this: ^IInfoQueue, pFilter: ^INFO_QUEUE_FILTER) -> HRESULT,
|
||||||
|
PopRetrievalFilter: proc "system" (this: ^IInfoQueue),
|
||||||
|
GetRetrievalFilterStackSize: proc "system" (this: ^IInfoQueue) -> u64,
|
||||||
|
AddMessage: proc "system" (this: ^IInfoQueue, Category: MESSAGE_CATEGORY, Severity: MESSAGE_SEVERITY, ID: MESSAGE_ID, pDescription: cstring) -> HRESULT,
|
||||||
|
AddApplicationMessage: proc "system" (this: ^IInfoQueue, Severity: MESSAGE_SEVERITY, pDescription: cstring) -> HRESULT,
|
||||||
SetBreakOnCategory: proc "system" (this: ^IInfoQueue, Category: MESSAGE_CATEGORY, bEnable: BOOL) -> HRESULT,
|
SetBreakOnCategory: proc "system" (this: ^IInfoQueue, Category: MESSAGE_CATEGORY, bEnable: BOOL) -> HRESULT,
|
||||||
SetBreakOnID: proc "system" (this: ^IInfoQueue, ID: MESSAGE_ID, bEnable: BOOL) -> HRESULT,
|
|
||||||
SetBreakOnSeverity: proc "system" (this: ^IInfoQueue, Severity: MESSAGE_SEVERITY, bEnable: BOOL) -> HRESULT,
|
SetBreakOnSeverity: proc "system" (this: ^IInfoQueue, Severity: MESSAGE_SEVERITY, bEnable: BOOL) -> HRESULT,
|
||||||
SetMessageCountLimit: proc "system" (this: ^IInfoQueue, MessageCountLimit: u64) -> HRESULT,
|
SetBreakOnID: proc "system" (this: ^IInfoQueue, ID: MESSAGE_ID, bEnable: BOOL) -> HRESULT,
|
||||||
|
GetBreakOnCategory: proc "system" (this: ^IInfoQueue, Category: MESSAGE_CATEGORY) -> BOOL,
|
||||||
|
GetBreakOnSeverity: proc "system" (this: ^IInfoQueue, Severity: MESSAGE_SEVERITY) -> BOOL,
|
||||||
|
GetBreakOnID: proc "system" (this: ^IInfoQueue, ID: MESSAGE_ID) -> BOOL,
|
||||||
SetMuteDebugOutput: proc "system" (this: ^IInfoQueue, bMute: BOOL),
|
SetMuteDebugOutput: proc "system" (this: ^IInfoQueue, bMute: BOOL),
|
||||||
|
GetMuteDebugOutput: proc "system" (this: ^IInfoQueue) -> BOOL,
|
||||||
}
|
}
|
||||||
|
|
||||||
MESSAGE_ID :: enum u32 {
|
MESSAGE_ID :: enum u32 {
|
||||||
|
|||||||
Reference in New Issue
Block a user