通信リソース ハンドル
プロセスでは、CreateFile 関数を使用して、通信リソースへのハンドルを開きます。 たとえば、COM1 を指定するとシリアル ポートへのハンドルが開き、LPT1 は並列ポートへのハンドルを開きます。 指定したリソースが現在別のプロセスによって使用されている場合、CreateFile は失敗します。 プロセスのすべてのスレッドは、CreateFile によって返されるハンドルを使用して、リソースにアクセスする関数内のリソースを識別できます。
プロセスが CreateFile呼び出して通信リソースを開くと、次の属性が指定されます。
- 指定したリソースに対して存在する読み取り/書き込みアクセスの種類。
- 子プロセスによってハンドルを継承できるかどうか。
- ハンドルを重複 (非同期) I/O 操作で使用できるかどうかを示します。 (重複する操作の詳細については、「同期 」を参照してください)。
プロセス CreateFile を使用して通信リソースを開く場合は、次のパラメーターに特定の値を指定する必要があります。
- fdwShareMode パラメーターは 0 である必要があります。排他アクセスのためにリソースを開きます。
- fdwCreate パラメーターには、OPEN_EXISTING フラグを指定する必要があります。
- hTemplateFile パラメーターは NULL する必要があります。
CreateFile を使用してデバイスに直接ハンドルを開く場合、アプリケーションは特殊文字 "\\ .\" を使用してデバイスを識別する必要があります。 たとえば、A をドライブするハンドルを開くには、CreateFile の lpszName パラメーターに \\ .\a:指定します。 呼び出し元のプロセスは、DeviceIoControl 関数のハンドルを使用して、コントロール コードをデバイスに送信できます。