ホーム › Devices.Communication › MODEMDEVCAPS
MODEMDEVCAPS
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| dwActualSize | DWORD | 4 | +0 | +0 | アプリケーションに実際に返されたデータのサイズ (バイト単位)。アプリケーションが構造体の可変長部分に十分な領域を割り当てなかった場合、このメンバーは dwRequiredSize メンバーより小さくなることがあります。 | ||||||||||
| dwRequiredSize | DWORD | 4 | +4 | +4 | 可変長部分を含む MODEMDEVCAPS 構造体全体に必要なバイト数。 | ||||||||||
| dwDevSpecificOffset | DWORD | 4 | +8 | +8 | 構造体のうちプロバイダー定義部分のオフセット。構造体の先頭を基準としたバイト単位で指定されます。 | ||||||||||
| dwDevSpecificSize | DWORD | 4 | +12 | +12 | 構造体のうちプロバイダー定義部分のサイズ (バイト単位)。 | ||||||||||
| dwModemProviderVersion | DWORD | 4 | +16 | +16 | サービス プロバイダーのバージョン。このメンバーの形式と用途はサービス プロバイダーによって異なります。 | ||||||||||
| dwModemManufacturerOffset | DWORD | 4 | +20 | +20 | モデムの製造元名を格納するテキスト文字列のオフセット。構造体の先頭を基準としたバイト単位で指定されます。 | ||||||||||
| dwModemManufacturerSize | DWORD | 4 | +24 | +24 | モデムの製造元名の長さ (バイト単位)。この文字列は NULL で終端されていません。 | ||||||||||
| dwModemModelOffset | DWORD | 4 | +28 | +28 | モデムのモデル名を格納するテキスト文字列のオフセット。構造体の先頭を基準としたバイト単位で指定されます。 | ||||||||||
| dwModemModelSize | DWORD | 4 | +32 | +32 | モデル名の長さ (バイト単位)。この文字列は NULL で終端されていません。 | ||||||||||
| dwModemVersionOffset | DWORD | 4 | +36 | +36 | プロバイダーが情報を取得できた場合に、接続されているモデムのバージョンとリビジョンを示すテキスト文字列のオフセット。オフセットは構造体の先頭を基準としたバイト単位で指定されます。 | ||||||||||
| dwModemVersionSize | DWORD | 4 | +40 | +40 | モデムのバージョン文字列の長さ (バイト単位)。この文字列は NULL で終端されていません。 | ||||||||||
| dwDialOptions | MODEMDEVCAPS_DIAL_OPTIONS | 4 | +44 | +44 | モデム デバイスがサポートするダイヤル オプション。このメンバーには、0 または次の値の 1 つ以上を指定できます。
| ||||||||||
| dwCallSetupFailTimer | DWORD | 4 | +48 | +48 | モデムがサポートする呼設定タイムアウトの最大値 (秒単位)。これは MODEMSETTINGS 構造体の対応するメンバーに指定できる最大値です。 | ||||||||||
| dwInactivityTimeout | DWORD | 4 | +52 | +52 | モデムがサポートする無通信タイムアウトの最大値 (10 分の 1 秒単位)。これは MODEMSETTINGS 構造体の対応するメンバーに指定できる最大値です。 | ||||||||||
| dwSpeakerVolume | MODEMDEVCAPS_SPEAKER_VOLUME | 4 | +56 | +56 | モデムがサポートするスピーカー音量の設定。このメンバーには、0 または次の値の 1 つ以上を指定できます。
| ||||||||||
| dwSpeakerMode | MODEMDEVCAPS_SPEAKER_MODE | 4 | +60 | +60 | モデムがサポートするスピーカー モードの設定。このメンバーには、0 または次の値の 1 つ以上を指定できます。
| ||||||||||
| dwModemOptions | DWORD | 4 | +64 | +64 | モデムのオプション。このメンバーには、0 または次の値の 1 つ以上を指定できます。 MDM_BLIND_DIAL (0x00000200)MDM_CCITT_OVERRIDE (0x00000040)MDM_CELLULAR (0x00000008)MDM_COMPRESSION (0x00000001)MDM_DIAGNOSTICS (0x000000800)MDM_ERROR_CONTROL (0x00000002)MDM_FLOWCONTROL_HARD (0x00000010)MDM_FLOWCONTROL_SOFT (0x00000020)MDM_FORCED_EC (0x00000004)MDM_SPEED_ADJUST (0x00000080)MDM_TONE_DIAL (0x00000100)MDM_V23_OVERRIDE (0x00000400)MODEMDEVCAPS を MODEMSETTINGS 構造体の一部としてモデムのオプションの設定に使用する場合、これらの値は次のように使用されます。
V.23 を設定するには、MDM_CCITT_OVERRIDE と MDM_V23_OVERRIDE の両方が設定されていなければなりません。 | ||||||||||
| dwMaxDTERate | DWORD | 4 | +68 | +68 | DTE の最大レート (ビット/秒)。 | ||||||||||
| dwMaxDCERate | DWORD | 4 | +72 | +72 | DCE の最大レート (ビット/秒)。 | ||||||||||
| abVariablePortion | BYTE | 1 | +76 | +76 | 文字列やプロバイダー定義の情報を含む、可変長の情報。 |
公式ドキュメント
モデムの機能に関する情報を格納します。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
#include <windows.h>
// MODEMDEVCAPS (x64 80 / x86 80 バイト)
typedef struct MODEMDEVCAPS {
DWORD dwActualSize;
DWORD dwRequiredSize;
DWORD dwDevSpecificOffset;
DWORD dwDevSpecificSize;
DWORD dwModemProviderVersion;
DWORD dwModemManufacturerOffset;
DWORD dwModemManufacturerSize;
DWORD dwModemModelOffset;
DWORD dwModemModelSize;
DWORD dwModemVersionOffset;
DWORD dwModemVersionSize;
MODEMDEVCAPS_DIAL_OPTIONS dwDialOptions;
DWORD dwCallSetupFailTimer;
DWORD dwInactivityTimeout;
MODEMDEVCAPS_SPEAKER_VOLUME dwSpeakerVolume;
MODEMDEVCAPS_SPEAKER_MODE dwSpeakerMode;
DWORD dwModemOptions;
DWORD dwMaxDTERate;
DWORD dwMaxDCERate;
BYTE abVariablePortion[1];
} MODEMDEVCAPS;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct MODEMDEVCAPS
{
public uint dwActualSize;
public uint dwRequiredSize;
public uint dwDevSpecificOffset;
public uint dwDevSpecificSize;
public uint dwModemProviderVersion;
public uint dwModemManufacturerOffset;
public uint dwModemManufacturerSize;
public uint dwModemModelOffset;
public uint dwModemModelSize;
public uint dwModemVersionOffset;
public uint dwModemVersionSize;
public uint dwDialOptions;
public uint dwCallSetupFailTimer;
public uint dwInactivityTimeout;
public uint dwSpeakerVolume;
public uint dwSpeakerMode;
public uint dwModemOptions;
public uint dwMaxDTERate;
public uint dwMaxDCERate;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)] public byte[] abVariablePortion;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure MODEMDEVCAPS
Public dwActualSize As UInteger
Public dwRequiredSize As UInteger
Public dwDevSpecificOffset As UInteger
Public dwDevSpecificSize As UInteger
Public dwModemProviderVersion As UInteger
Public dwModemManufacturerOffset As UInteger
Public dwModemManufacturerSize As UInteger
Public dwModemModelOffset As UInteger
Public dwModemModelSize As UInteger
Public dwModemVersionOffset As UInteger
Public dwModemVersionSize As UInteger
Public dwDialOptions As UInteger
Public dwCallSetupFailTimer As UInteger
Public dwInactivityTimeout As UInteger
Public dwSpeakerVolume As UInteger
Public dwSpeakerMode As UInteger
Public dwModemOptions As UInteger
Public dwMaxDTERate As UInteger
Public dwMaxDCERate As UInteger
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=1)> Public abVariablePortion() As Byte
End Structureimport ctypes
from ctypes import wintypes
class MODEMDEVCAPS(ctypes.Structure):
_fields_ = [
("dwActualSize", wintypes.DWORD),
("dwRequiredSize", wintypes.DWORD),
("dwDevSpecificOffset", wintypes.DWORD),
("dwDevSpecificSize", wintypes.DWORD),
("dwModemProviderVersion", wintypes.DWORD),
("dwModemManufacturerOffset", wintypes.DWORD),
("dwModemManufacturerSize", wintypes.DWORD),
("dwModemModelOffset", wintypes.DWORD),
("dwModemModelSize", wintypes.DWORD),
("dwModemVersionOffset", wintypes.DWORD),
("dwModemVersionSize", wintypes.DWORD),
("dwDialOptions", wintypes.DWORD),
("dwCallSetupFailTimer", wintypes.DWORD),
("dwInactivityTimeout", wintypes.DWORD),
("dwSpeakerVolume", wintypes.DWORD),
("dwSpeakerMode", wintypes.DWORD),
("dwModemOptions", wintypes.DWORD),
("dwMaxDTERate", wintypes.DWORD),
("dwMaxDCERate", wintypes.DWORD),
("abVariablePortion", ctypes.c_ubyte * 1),
]#[repr(C)]
pub struct MODEMDEVCAPS {
pub dwActualSize: u32,
pub dwRequiredSize: u32,
pub dwDevSpecificOffset: u32,
pub dwDevSpecificSize: u32,
pub dwModemProviderVersion: u32,
pub dwModemManufacturerOffset: u32,
pub dwModemManufacturerSize: u32,
pub dwModemModelOffset: u32,
pub dwModemModelSize: u32,
pub dwModemVersionOffset: u32,
pub dwModemVersionSize: u32,
pub dwDialOptions: u32,
pub dwCallSetupFailTimer: u32,
pub dwInactivityTimeout: u32,
pub dwSpeakerVolume: u32,
pub dwSpeakerMode: u32,
pub dwModemOptions: u32,
pub dwMaxDTERate: u32,
pub dwMaxDCERate: u32,
pub abVariablePortion: [u8; 1],
}import "golang.org/x/sys/windows"
type MODEMDEVCAPS struct {
dwActualSize uint32
dwRequiredSize uint32
dwDevSpecificOffset uint32
dwDevSpecificSize uint32
dwModemProviderVersion uint32
dwModemManufacturerOffset uint32
dwModemManufacturerSize uint32
dwModemModelOffset uint32
dwModemModelSize uint32
dwModemVersionOffset uint32
dwModemVersionSize uint32
dwDialOptions uint32
dwCallSetupFailTimer uint32
dwInactivityTimeout uint32
dwSpeakerVolume uint32
dwSpeakerMode uint32
dwModemOptions uint32
dwMaxDTERate uint32
dwMaxDCERate uint32
abVariablePortion [1]byte
}type
MODEMDEVCAPS = record
dwActualSize: DWORD;
dwRequiredSize: DWORD;
dwDevSpecificOffset: DWORD;
dwDevSpecificSize: DWORD;
dwModemProviderVersion: DWORD;
dwModemManufacturerOffset: DWORD;
dwModemManufacturerSize: DWORD;
dwModemModelOffset: DWORD;
dwModemModelSize: DWORD;
dwModemVersionOffset: DWORD;
dwModemVersionSize: DWORD;
dwDialOptions: DWORD;
dwCallSetupFailTimer: DWORD;
dwInactivityTimeout: DWORD;
dwSpeakerVolume: DWORD;
dwSpeakerMode: DWORD;
dwModemOptions: DWORD;
dwMaxDTERate: DWORD;
dwMaxDCERate: DWORD;
abVariablePortion: array[0..0] of Byte;
end;const MODEMDEVCAPS = extern struct {
dwActualSize: u32,
dwRequiredSize: u32,
dwDevSpecificOffset: u32,
dwDevSpecificSize: u32,
dwModemProviderVersion: u32,
dwModemManufacturerOffset: u32,
dwModemManufacturerSize: u32,
dwModemModelOffset: u32,
dwModemModelSize: u32,
dwModemVersionOffset: u32,
dwModemVersionSize: u32,
dwDialOptions: u32,
dwCallSetupFailTimer: u32,
dwInactivityTimeout: u32,
dwSpeakerVolume: u32,
dwSpeakerMode: u32,
dwModemOptions: u32,
dwMaxDTERate: u32,
dwMaxDCERate: u32,
abVariablePortion: [1]u8,
};type
MODEMDEVCAPS {.bycopy.} = object
dwActualSize: uint32
dwRequiredSize: uint32
dwDevSpecificOffset: uint32
dwDevSpecificSize: uint32
dwModemProviderVersion: uint32
dwModemManufacturerOffset: uint32
dwModemManufacturerSize: uint32
dwModemModelOffset: uint32
dwModemModelSize: uint32
dwModemVersionOffset: uint32
dwModemVersionSize: uint32
dwDialOptions: uint32
dwCallSetupFailTimer: uint32
dwInactivityTimeout: uint32
dwSpeakerVolume: uint32
dwSpeakerMode: uint32
dwModemOptions: uint32
dwMaxDTERate: uint32
dwMaxDCERate: uint32
abVariablePortion: array[1, uint8]struct MODEMDEVCAPS
{
uint dwActualSize;
uint dwRequiredSize;
uint dwDevSpecificOffset;
uint dwDevSpecificSize;
uint dwModemProviderVersion;
uint dwModemManufacturerOffset;
uint dwModemManufacturerSize;
uint dwModemModelOffset;
uint dwModemModelSize;
uint dwModemVersionOffset;
uint dwModemVersionSize;
uint dwDialOptions;
uint dwCallSetupFailTimer;
uint dwInactivityTimeout;
uint dwSpeakerVolume;
uint dwSpeakerMode;
uint dwModemOptions;
uint dwMaxDTERate;
uint dwMaxDCERate;
ubyte[1] abVariablePortion;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; MODEMDEVCAPS サイズ: 80 バイト(x64)
dim st, 20 ; 4byte整数×20(構造体サイズ 80 / 4 切り上げ)
; dwActualSize : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; dwRequiredSize : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; dwDevSpecificOffset : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; dwDevSpecificSize : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; dwModemProviderVersion : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; dwModemManufacturerOffset : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; dwModemManufacturerSize : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; dwModemModelOffset : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; dwModemModelSize : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; dwModemVersionOffset : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; dwModemVersionSize : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; dwDialOptions : MODEMDEVCAPS_DIAL_OPTIONS (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; dwCallSetupFailTimer : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; dwInactivityTimeout : DWORD (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; dwSpeakerVolume : MODEMDEVCAPS_SPEAKER_VOLUME (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; dwSpeakerMode : MODEMDEVCAPS_SPEAKER_MODE (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; dwModemOptions : DWORD (+64, 4byte) st.16 = 値 / 値 = st.16 (lpoke/lpeek も可)
; dwMaxDTERate : DWORD (+68, 4byte) st.17 = 値 / 値 = st.17 (lpoke/lpeek も可)
; dwMaxDCERate : DWORD (+72, 4byte) st.18 = 値 / 値 = st.18 (lpoke/lpeek も可)
; abVariablePortion : BYTE (+76, 1byte) varptr(st)+76 を基点に操作(1byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global MODEMDEVCAPS
#field int dwActualSize
#field int dwRequiredSize
#field int dwDevSpecificOffset
#field int dwDevSpecificSize
#field int dwModemProviderVersion
#field int dwModemManufacturerOffset
#field int dwModemManufacturerSize
#field int dwModemModelOffset
#field int dwModemModelSize
#field int dwModemVersionOffset
#field int dwModemVersionSize
#field int dwDialOptions
#field int dwCallSetupFailTimer
#field int dwInactivityTimeout
#field int dwSpeakerVolume
#field int dwSpeakerMode
#field int dwModemOptions
#field int dwMaxDTERate
#field int dwMaxDCERate
#field byte abVariablePortion 1
#endstruct
stdim st, MODEMDEVCAPS ; NSTRUCT 変数を確保
st->dwActualSize = 100
mes "dwActualSize=" + st->dwActualSize