ホーム › Graphics.Dxgi › DXGI_INFO_QUEUE_FILTER
DXGI_INFO_QUEUE_FILTER
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| AllowList | DXGI_INFO_QUEUE_FILTER_DESC | 48/24 | +0 | +0 | 通過を許可するメッセージ条件を表すDXGI_INFO_QUEUE_FILTER_DESC。 |
| DenyList | DXGI_INFO_QUEUE_FILTER_DESC | 48/24 | +48 | +24 | 拒否(抑制)するメッセージ条件を表すDXGI_INFO_QUEUE_FILTER_DESC。 |
各言語での定義
#include <windows.h>
// DXGI_INFO_QUEUE_FILTER_DESC (x64 48 / x86 24 バイト)
typedef struct DXGI_INFO_QUEUE_FILTER_DESC {
DWORD NumCategories;
DXGI_INFO_QUEUE_MESSAGE_CATEGORY* pCategoryList;
DWORD NumSeverities;
DXGI_INFO_QUEUE_MESSAGE_SEVERITY* pSeverityList;
DWORD NumIDs;
INT* pIDList;
} DXGI_INFO_QUEUE_FILTER_DESC;
// DXGI_INFO_QUEUE_FILTER (x64 96 / x86 48 バイト)
typedef struct DXGI_INFO_QUEUE_FILTER {
DXGI_INFO_QUEUE_FILTER_DESC AllowList;
DXGI_INFO_QUEUE_FILTER_DESC DenyList;
} DXGI_INFO_QUEUE_FILTER;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DXGI_INFO_QUEUE_FILTER_DESC
{
public uint NumCategories;
public IntPtr pCategoryList;
public uint NumSeverities;
public IntPtr pSeverityList;
public uint NumIDs;
public IntPtr pIDList;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DXGI_INFO_QUEUE_FILTER
{
public DXGI_INFO_QUEUE_FILTER_DESC AllowList;
public DXGI_INFO_QUEUE_FILTER_DESC DenyList;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DXGI_INFO_QUEUE_FILTER_DESC
Public NumCategories As UInteger
Public pCategoryList As IntPtr
Public NumSeverities As UInteger
Public pSeverityList As IntPtr
Public NumIDs As UInteger
Public pIDList As IntPtr
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DXGI_INFO_QUEUE_FILTER
Public AllowList As DXGI_INFO_QUEUE_FILTER_DESC
Public DenyList As DXGI_INFO_QUEUE_FILTER_DESC
End Structureimport ctypes
from ctypes import wintypes
class DXGI_INFO_QUEUE_FILTER_DESC(ctypes.Structure):
_fields_ = [
("NumCategories", wintypes.DWORD),
("pCategoryList", ctypes.c_void_p),
("NumSeverities", wintypes.DWORD),
("pSeverityList", ctypes.c_void_p),
("NumIDs", wintypes.DWORD),
("pIDList", ctypes.c_void_p),
]
class DXGI_INFO_QUEUE_FILTER(ctypes.Structure):
_fields_ = [
("AllowList", DXGI_INFO_QUEUE_FILTER_DESC),
("DenyList", DXGI_INFO_QUEUE_FILTER_DESC),
]#[repr(C)]
pub struct DXGI_INFO_QUEUE_FILTER_DESC {
pub NumCategories: u32,
pub pCategoryList: *mut core::ffi::c_void,
pub NumSeverities: u32,
pub pSeverityList: *mut core::ffi::c_void,
pub NumIDs: u32,
pub pIDList: *mut core::ffi::c_void,
}
#[repr(C)]
pub struct DXGI_INFO_QUEUE_FILTER {
pub AllowList: DXGI_INFO_QUEUE_FILTER_DESC,
pub DenyList: DXGI_INFO_QUEUE_FILTER_DESC,
}import "golang.org/x/sys/windows"
type DXGI_INFO_QUEUE_FILTER_DESC struct {
NumCategories uint32
pCategoryList uintptr
NumSeverities uint32
pSeverityList uintptr
NumIDs uint32
pIDList uintptr
}
type DXGI_INFO_QUEUE_FILTER struct {
AllowList DXGI_INFO_QUEUE_FILTER_DESC
DenyList DXGI_INFO_QUEUE_FILTER_DESC
}type
DXGI_INFO_QUEUE_FILTER_DESC = record
NumCategories: DWORD;
pCategoryList: Pointer;
NumSeverities: DWORD;
pSeverityList: Pointer;
NumIDs: DWORD;
pIDList: Pointer;
end;
DXGI_INFO_QUEUE_FILTER = record
AllowList: DXGI_INFO_QUEUE_FILTER_DESC;
DenyList: DXGI_INFO_QUEUE_FILTER_DESC;
end;const DXGI_INFO_QUEUE_FILTER_DESC = extern struct {
NumCategories: u32,
pCategoryList: ?*anyopaque,
NumSeverities: u32,
pSeverityList: ?*anyopaque,
NumIDs: u32,
pIDList: ?*anyopaque,
};
const DXGI_INFO_QUEUE_FILTER = extern struct {
AllowList: DXGI_INFO_QUEUE_FILTER_DESC,
DenyList: DXGI_INFO_QUEUE_FILTER_DESC,
};type
DXGI_INFO_QUEUE_FILTER_DESC {.bycopy.} = object
NumCategories: uint32
pCategoryList: pointer
NumSeverities: uint32
pSeverityList: pointer
NumIDs: uint32
pIDList: pointer
DXGI_INFO_QUEUE_FILTER {.bycopy.} = object
AllowList: DXGI_INFO_QUEUE_FILTER_DESC
DenyList: DXGI_INFO_QUEUE_FILTER_DESCstruct DXGI_INFO_QUEUE_FILTER_DESC
{
uint NumCategories;
void* pCategoryList;
uint NumSeverities;
void* pSeverityList;
uint NumIDs;
void* pIDList;
}
struct DXGI_INFO_QUEUE_FILTER
{
DXGI_INFO_QUEUE_FILTER_DESC AllowList;
DXGI_INFO_QUEUE_FILTER_DESC DenyList;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; DXGI_INFO_QUEUE_FILTER サイズ: 48 バイト(x86)
dim st, 12 ; 4byte整数×12(構造体サイズ 48 / 4 切り上げ)
; AllowList : DXGI_INFO_QUEUE_FILTER_DESC (+0, 24byte) varptr(st)+0 を基点に操作(24byte:入れ子/配列)
; DenyList : DXGI_INFO_QUEUE_FILTER_DESC (+24, 24byte) varptr(st)+24 を基点に操作(24byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; DXGI_INFO_QUEUE_FILTER サイズ: 96 バイト(x64)
dim st, 24 ; 4byte整数×24(構造体サイズ 96 / 4 切り上げ)
; AllowList : DXGI_INFO_QUEUE_FILTER_DESC (+0, 48byte) varptr(st)+0 を基点に操作(48byte:入れ子/配列)
; DenyList : DXGI_INFO_QUEUE_FILTER_DESC (+48, 48byte) varptr(st)+48 を基点に操作(48byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global DXGI_INFO_QUEUE_FILTER_DESC
#field int NumCategories
#field intptr pCategoryList
#field int NumSeverities
#field intptr pSeverityList
#field int NumIDs
#field intptr pIDList
#endstruct
#defstruct global DXGI_INFO_QUEUE_FILTER
#field DXGI_INFO_QUEUE_FILTER_DESC AllowList
#field DXGI_INFO_QUEUE_FILTER_DESC DenyList
#endstruct
stdim st, DXGI_INFO_QUEUE_FILTER ; NSTRUCT 変数を確保