Kommunikationsressourcenhandles
Ein Prozess verwendet die CreateFile-Funktion , um ein Handle für eine Kommunikationsressource zu öffnen. Wenn Sie beispielsweise COM1 angeben, wird ein Handle für einen seriellen Port geöffnet, und LPT1 öffnet ein Handle für einen parallelen Port. Wenn die angegebene Ressource derzeit von einem anderen Prozess verwendet wird, schlägt CreateFile fehl. Jeder Thread des Prozesses kann das von CreateFile zurückgegebene Handle verwenden, um die Ressource in einer der Funktionen zu identifizieren, die auf die Ressource zugreifen.
Wenn der Prozess CreateFile aufruft, um eine Kommunikationsressource zu öffnen, werden die folgenden Attribute angegeben:
- Welche Art von Lese-/Schreibzugriff für die angegebene Ressource vorhanden ist.
- Gibt an, ob das Handle von untergeordneten Prozessen geerbt werden kann.
- Gibt an, ob das Handle in überlappenden (asynchronen) E/A-Vorgängen verwendet werden kann. (Eine Beschreibung überlappender Vorgänge finden Sie unter Synchronisierung.)
Wenn der Prozess CreateFile zum Öffnen einer Kommunikationsressource verwendet, müssen bestimmte Werte für die folgenden Parameter angegeben werden:
- Der fdwShareMode-Parameter muss 0 sein und die Ressource für den exklusiven Zugriff öffnen.
- Der parameter fdwCreate muss das flag OPEN_EXISTING angeben.
- Der hTemplateFile-Parameter muss NULL sein.
Wenn Sie CreateFile verwenden, um ein Handle direkt auf einem Gerät zu öffnen, muss eine Anwendung die Sonderzeichen "\\ .\" verwenden, um das Gerät zu identifizieren. Um beispielsweise ein Handle für Laufwerk A zu öffnen, geben Sie \\ .\a: für den lpszName-Parameter von CreateFile an. Der aufrufende Prozess kann den Handle in der DeviceIoControl-Funktion verwenden, um Steuercodes an das Gerät zu senden.