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 |