SERIAL_COMMPROP 構造体 (ntddser.h)

SERIAL_COMMPROP構造体は、シリアル ポートのプロパティを指定します。

構文

typedef struct _SERIAL_COMMPROP {
  USHORT PacketLength;
  USHORT PacketVersion;
  ULONG  ServiceMask;
  ULONG  Reserved1;
  ULONG  MaxTxQueue;
  ULONG  MaxRxQueue;
  ULONG  MaxBaud;
  ULONG  ProvSubType;
  ULONG  ProvCapabilities;
  ULONG  SettableParams;
  ULONG  SettableBaud;
  USHORT SettableData;
  USHORT SettableStopParity;
  ULONG  CurrentTxQueue;
  ULONG  CurrentRxQueue;
  ULONG  ProvSpec1;
  ULONG  ProvSpec2;
  WCHAR  ProvChar[1];
} SERIAL_COMMPROP, *PSERIAL_COMMPROP;

メンバー

PacketLength

この構造体で始まり、要求されたプロパティ データを含むデータ パケットのサイズ (バイト単位)。 このサイズには、 SERIAL_COMMPROP 構造体と、この構造体に続く追加の ProvChar 配列要素が含まれます。

PacketVersion

この構造体のバージョン。 現在のバージョン番号は 2 です。

ServiceMask

この通信プロバイダーによって実装されるサービスを示すビットマスク。 このメンバーは常に、モデム プロバイダーを含むシリアル通信プロバイダーによってSERIAL_SP_SERIALCOMMに設定されます。 ProvSubType メンバーは、実装されているシリアル通信の特定の種類 (モデムなど) を示します。

Reserved1

使用されていません。

MaxTxQueue

送信キューの最大サイズ。 シリアル コントローラー ドライバーの内部出力バッファーの最大サイズ (バイト単位)。 値が 0 の場合は、シリアル プロバイダーによって最大値が設定されていないことを示します。

MaxRxQueue

受信キューの最大サイズ。 シリアル コントローラー ドライバーの内部入力バッファーの最大サイズ (バイト単位)。 値が 0 の場合は、シリアル プロバイダーによって最大値が設定されていないことを示します。

MaxBaud

許容されるボーレートの最大値。 拡張機能ベースのシリアル コントローラー ドライバーは、このメンバーをビット/秒 (bps) で表されるボー レートに設定します。 たとえば、シリアル コントローラーが最大ボー レート 115,200 bps をサポートしている場合、ドライバーは MaxBaud = 115200 を設定します。

ただし、Serial.sys および多くの古いシリアル コントローラー ドライバーは、Ntddser.h ヘッダー ファイルで定義されている SERIAL_BAUD_XXX フラグ ビットのいずれかに MaxBaud を設定します。 このメンバーには、次の値が定義されています。

説明
SERIAL_BAUD_075 75 bps
SERIAL_BAUD_110 110 bps
SERIAL_BAUD_134_5 134.5 bps
SERIAL_BAUD_150 150 bps
SERIAL_BAUD_300 300 bps
SERIAL_BAUD_600 600 bps
SERIAL_BAUD_1200 1,200 bps
SERIAL_BAUD_1800 1,800 bps
SERIAL_BAUD_2400 2,400 bps
SERIAL_BAUD_4800 4,800 bps
SERIAL_BAUD_7200 7,200 bps
SERIAL_BAUD_9600 9,600 bps
SERIAL_BAUD_14400 14,400 bps
SERIAL_BAUD_19200 19,200 bps
SERIAL_BAUD_38400 38,400 bps
SERIAL_BAUD_56K 56,000 bps
SERIAL_BAUD_57600 57,600 bps
SERIAL_BAUD_115200 115,200 bps
SERIAL_BAUD_128K 128,000 bps
SERIAL_BAUD_USER プログラム可能なボーレートを使用できます。

ProvSubType

特定の通信プロバイダーの種類。 ServiceMask メンバーが SERIAL_SP_SERIALCOMM に設定されている場合、ProvSubType は次のいずれかの値に設定されます。

意味
SERIAL_SP_UNSPECIFIED 指定されていません。
SERIAL_SP_RS232 RS-232 シリアル ポート
SERIAL_SP_PARALLEL 並列ポート
SERIAL_SP_RS422 RS-422 シリアル ポート
SERIAL_SP_RS423 RS-423 シリアル ポート
SERIAL_SP_RS449 RS-449 シリアル ポート
SERIAL_SP_MODEM モデム デバイス
SERIAL_SP_FAX FAX デバイス
SERIAL_SP_SCANNER スキャナー デバイス
SERIAL_SP_BRIDGE 未指定のネットワーク ブリッジ
SERIAL_SP_LAT LAT プロトコル
SERIAL_SP_TELNET TCP/IP Telnet® プロトコル
SERIAL_SP_X25 X.25 標準

ProvCapabilities

プロバイダーによって提供される機能。 このメンバーは、0 または次のフラグ ビットの 1 つ以上のビットごとの OR に設定されます。

説明
SERIAL_PCF_DTRDSR DTR (データ 端末対応) と DSR (データ・セットの準備完了) がサポートされています。
SERIAL_PCF_RTSCTS RTS (送信要求) と CTS (送信がクリア) がサポートされています。
SERIAL_PCF_CD CD (キャリア検出) がサポートされています。
SERIAL_PCF_PARITY_CHECK パリティ チェックがサポートされています。
SERIAL_PCF_XONXOFF XON(送信オン)とXOFF(送信オフ)フロー制御がサポートされています。
SERIAL_PCF_SETXCHAR XON 文字と XOFF 文字は設定可能です。
SERIAL_PCF_TOTALTIMEOUTS 経過時間の合計タイムアウトがサポートされています。
SERIAL_PCF_INTTIMEOUTS 間隔のタイムアウトがサポートされています。
SERIAL_PCF_SPECIALCHARS 特殊文字がサポートされています。
SERIAL_PCF_16BITMODE 特殊な 16 ビット モードがサポートされています。

SettableParams

変更できる通信パラメーターを示すビットマスク。 このメンバーは、0 または次のフラグ ビットの 1 つ以上のビットごとの OR に設定されます。

説明
SERIAL_SP_PARITY パリティの種類 (偶数または奇数)
SERIAL_SP_BAUD ボー レート
SERIAL_SP_DATABITS データ ビット
SERIAL_SP_STOPBITS ストップ ビット
SERIAL_SP_HANDSHAKING ハンドシェイク (フロー制御)
SERIAL_SP_PARITY_CHECK パリティ チェック
SERIAL_SP_CARRIER_DETECT キャリア検出

SettableBaud

使用できるボー レートを示すビットマスク。 このメンバーに対して定義されているSERIAL_BAUD_XXX フラグ ビットについて説明するテーブルについては、 MaxBaud メンバーの説明を参照してください。 SettableBaud は、0 またはビットごとの OR またはこれらのフラグ ビットの 1 つ以上に設定されます。

シリアル コントローラー ドライバーは 、SettableBaud ビットマスク値のSERIAL_BAUD_USER フラグ ビットを設定して、他の SERIAL_BAUD_XXX フラグ ビットで表すことができるボー レートよりも高いボー レートをサポートしていることを示します。 たとえば、ボー レート 57600、115200、230400、460800 bps をサポートするドライバーでは、 SettableBaud = (SERIAL_BAUD_57600 |SERIAL_BAUD_115200 |SERIAL_BAUD_USER)。

SettableData

設定できるデータ ビットの数。 このメンバーは、0 または次のフラグ ビットの 1 つ以上のビットごとの OR に設定されます。

説明
SERIAL_DATABITS_5 5 データ ビット
SERIAL_DATABITS_6 6 データ ビット
SERIAL_DATABITS_7 7 データ ビット
SERIAL_DATABITS_8 8 データ ビット
SERIAL_DATABITS_16 16 データ ビット
SERIAL_DATABITS_16X シリアルハードウェアラインを通る特殊なワイドパス

SettableStopParity

選択できるストップビットとパリティの設定。 このメンバーは、0 または次のフラグ ビットの 1 つ以上のビットごとの OR に設定されます。

説明
SERIAL_STOPBITS_10 1 ストップ ビット。
SERIAL_STOPBITS_15 1 ビット半のストップ ビット。
SERIAL_STOPBITS_20 2 ストップ ビット。
SERIAL_PARITY_NONE パリティ ビットは使用されません。
SERIAL_PARITY_ODD 奇数パリティ。 文字値の 1 の数が偶数の場合、パリティ ビットは 1 です。 それ以外の場合、パリティ ビットは 0 です。
SERIAL_PARITY_EVEN 偶数パリティ。 文字値の 1 の数が奇数の場合、パリティ ビットは 1 です。 それ以外の場合、パリティ ビットは 0 です。
SERIAL_PARITY_MARK パリティ ビットは常に 1 に設定されます。
SERIAL_PARITY_SPACE パリティ ビットは常に 0 に設定されます。

CurrentTxQueue

送信キューのサイズ。 このメンバーは、シリアル コントローラー ドライバーの内部出力バッファーのサイズ (バイト単位) を指定します。 値 0 は、バッファー サイズが使用できないことを示します。

SerCx2 と SerCx の場合、関連付けられているシリアル コントローラー ドライバーは通常、このメンバーを 0 に設定します。 Serial.sys、このメンバーを出力バッファー サイズを示す 0 以外の値に設定します。

CurrentRxQueue

受信キューのサイズ。 このメンバーは、シリアル コントローラー ドライバーの内部入力バッファーのサイズ (バイト単位) を指定します。 値 0 は、バッファー サイズが使用できないことを示します。

SerCx2 と SerCx の場合、このメンバーは、関連付けられているシリアル コントローラー ドライバーによって設定されます。 SerCx2 の場合、ドライバーは通常、このメンバーを 0 に設定します。 SerCx の場合、ドライバーは通常、このメンバーを SerCx が受信データのバッファーに使用するリング バッファーのサイズに設定します。 このドライバーは、 SerCxGetRingBufferUtilization メソッドを呼び出して、SerCx からリング バッファー サイズを取得できます。

Serial.sys、このメンバーを入力バッファー サイズを示す 0 以外の値に設定します。

ProvSpec1

プロバイダー固有のデータ。 シリアル ポートで必要なデータ形式に関するプロバイダー固有のデータが使用可能でない限り、アプリケーションはこのメンバーを無視する必要があります。

ProvSpec2

プロバイダー固有のデータ。 シリアル ポートで必要なデータ形式に関するプロバイダー固有のデータが使用可能でない限り、アプリケーションはこのメンバーを無視する必要があります。

ProvChar[1]

プロバイダー固有のデータ。 シリアル ポートで必要なデータ形式に関するプロバイダー固有のデータが使用可能でない限り、アプリケーションはこのメンバーを無視する必要があります。 このメンバーは、1 つ以上の要素のワイド文字配列の最初の要素です。 追加の要素は、このメンバーのすぐ後に続きます。 PacketLength メンバーは、SERIAL_COMMPROP構造体のサイズと、この構造体に続く追加の ProvChar 配列要素を指定します。

注釈

この構造体は、 IOCTL_SERIAL_GET_PROPERTIES 要求によって使用されます。

要件

要件
Header ntddser.h

こちらもご覧ください

IOCTL_SERIAL_GET_PROPERTIES