Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De pijpserver geeft de pijptoegang, overlap en write-through-modi in de dwOpenMode parameter van de CreateNamedPipe functie. De pijpclients kunnen deze open modi voor hun pijpgrepen opgeven met behulp van de CreateFile functie.
Toegangsmodus
Het instellen van de pijptoegangsmodus is gelijk aan het opgeven van lees- of schrijftoegang die is gekoppeld aan de ingangen van de pipe-server. In de volgende tabel ziet u het equivalente algemene toegangsrecht voor elke toegangsmodus die u kunt opgeven met CreateNamedPipe-.
| Toegangsmodus | Gelijkwaardig algemeen toegangsrecht |
|---|---|
| PIPE_ACCESS_INBOUND | GENERIC_READ |
| PIPE_ACCESS_OUTBOUND | GENERIC_WRITE |
| PIPE_ACCESS_DUPLEX | GENERIC_READ | GENERIC_WRITE |
Als de pijpserver een pijp met PIPE_ACCESS_INBOUND maakt, is de pijp alleen-lezen voor de pijpserver en alleen-schrijven voor de pijpclient. Als de pijpserver een pijp met PIPE_ACCESS_OUTBOUND maakt, is de pijp alleen-schrijven voor de pijpserver en alleen-lezen voor de pijpclient. Een pijp die is gemaakt met PIPE_ACCESS_DUPLEX is lezen/schrijven voor zowel de pijpserver als de pijpclient.
Pijpclients die gebruikmaken van CreateFile om verbinding te maken met een benoemde pijp, moeten een toegangsrecht opgeven in de parameter dwDesiredAccess die compatibel is met de toegangsmodus die is opgegeven door de pijpserver. Een client moet bijvoorbeeld GENERIC_READ toegang opgeven om een ingang te openen voor een pijp die door de pijpserver die is gemaakt met PIPE_ACCESS_OUTBOUND. De toegangsmodi moeten hetzelfde zijn voor alle exemplaren van een pijp.
Als u sluiskenmerken zoals de leesmodus of de blokkeringsmodus wilt lezen, moet de pijpgreep de toegangsrechten FILE_READ_ATTRIBUTES hebben; als u pijpkenmerken wilt schrijven, moet de greep van de pijp de FILE_WRITE_ATTRIBUTES toegang hebben. Deze toegangsrechten kunnen worden gecombineerd met het algemene toegangsrecht dat geschikt is voor de pijp: GENERIC_READ met FILE_WRITE_ATTRIBUTES voor een alleen-lezen pijp of GENERIC_WRITE met FILE_READ_ATTRIBUTES voor een pijp met alleen-schrijven. Het beperken van toegangsrechten op deze manier biedt betere beveiliging voor de pijp.
Overlappende modus
In de overlappende modus kunnen functies die langdurige lees-, schrijf- en verbindingsbewerkingen uitvoeren, onmiddellijk worden geretourneerd. Hierdoor kan de thread andere bewerkingen uitvoeren terwijl een tijdrovende bewerking op de achtergrond wordt uitgevoerd. Als u de overlappende modus wilt opgeven, gebruikt u de vlag FILE_FLAG_OVERLAPPED. Zie synchrone en overlappende invoer- en uitvoer-voor meer informatie.
Met de functie CreateFile kan de pijpclient overlappende modus (FILE_FLAG_OVERLAPPED) instellen voor de pijpgrepen met behulp van de parameter dwFlagsAndAttributes.
Write-Through modus
Geef de schrijfmodus op met FILE_FLAG_WRITE_THROUGH. Deze modus is alleen van invloed op schrijfbewerkingen naar byte-type pipes tussen pijpclients en pijpservers op verschillende computers. In de write-through-modus retourneren de functies die naar een benoemde pijp schrijven niet totdat de gegevens via het netwerk worden verzonden en in de buffer van de pijp op de externe computer. De schrijfmodus is handig voor toepassingen die synchronisatie vereisen voor elke schrijfbewerking.
Als de schrijfmodus niet is ingeschakeld, verbetert het systeem de efficiëntie van netwerkbewerkingen door gegevens te bufferen tot een minimum aantal bytes is verzameld of totdat een maximale periode is verstreken. Met buffering kan het systeem meerdere schrijfbewerkingen combineren tot één netwerktransmissie. Dit betekent dat een schrijfbewerking kan worden voltooid nadat het systeem de gegevens in de uitgaande buffer plaatst, maar voordat het systeem deze via het netwerk verzendt.
Met de functie CreateFile kan de pipe-client de write-through-modus (FILE_FLAG_WRITE_THROUGH) instellen voor de pijpgrepen met behulp van de parameter dwFlagsAndAttributes. De schrijfmodus van een pijpgreep kan niet worden gewijzigd nadat de pijpgreep is gemaakt. De write-through-modus kan verschillen voor server- en clientingangen naar hetzelfde pijpexemplaren.
Een pijpclient kan de functie SetNamedPipeHandleState gebruiken om het aantal bytes en de time-outperiode te bepalen voordat een pijp wordt verzonden waarop de schrijfmodus is uitgeschakeld. Voor een alleen-lezen pijp moet de pijpgreep worden geopend met de GENERIC_READ en FILE_WRITE_ATTRIBUTES toegangsrechten.