GetNamedPipeHandleStateA-Funktion (winbase.h)

Ruft Informationen zu einer angegebenen Named Pipe ab. Die zurückgegebenen Informationen können während der Lebensdauer einer instance der Named Pipe variieren.

Syntax

BOOL GetNamedPipeHandleStateA(
  [in]            HANDLE  hNamedPipe,
  [out, optional] LPDWORD lpState,
  [out, optional] LPDWORD lpCurInstances,
  [out, optional] LPDWORD lpMaxCollectionCount,
  [out, optional] LPDWORD lpCollectDataTimeout,
  [out, optional] LPSTR   lpUserName,
  [in]            DWORD   nMaxUserNameSize
);

Parameter

[in] hNamedPipe

Ein Handle für die benannte Pipe, für die Informationen gewünscht werden. Das Handle muss über GENERIC_READ Zugriff für eine schreibgeschützte Oder Lese-/Schreibpipe verfügen, oder es muss über GENERIC_WRITE und FILE_READ_ATTRIBUTES Zugriff für eine schreibgeschützte Pipe verfügen.

Dieser Parameter kann auch ein Handle für eine anonyme Pipe sein, wie von der CreatePipe-Funktion zurückgegeben.

[out, optional] lpState

Ein Zeiger auf eine Variable, die den aktuellen Status des Handles angibt. Dieser Parameter kann NULL sein, wenn diese Informationen nicht benötigt werden. Es können entweder oder beide der folgenden Werte angegeben werden.

Wert Bedeutung
PIPE_NOWAIT
0x00000001
Das Pipehandle befindet sich im Nichtblockierungsmodus. Wenn dieses Flag nicht angegeben ist, befindet sich das Pipehandle im Blockierungsmodus.
PIPE_READMODE_MESSAGE
0x00000002
Das Pipehandle befindet sich im Nachrichtenlesemodus. Wenn dieses Flag nicht angegeben ist, befindet sich das Pipehandle im Byte-Lesemodus.

[out, optional] lpCurInstances

Ein Zeiger auf eine Variable, die die Anzahl der aktuellen Pipeinstanzen empfängt. Dieser Parameter kann NULL sein, wenn diese Informationen nicht erforderlich sind.

[out, optional] lpMaxCollectionCount

Ein Zeiger auf eine Variable, die die maximale Anzahl von Bytes empfängt, die vor der Übertragung an den Server auf dem Clientcomputer gesammelt werden sollen. Dieser Parameter muss NULL sein, wenn sich das angegebene Pipehandle am Serverende einer Named Pipe befindet oder sich Client- und Serverprozesse auf demselben Computer befinden. Dieser Parameter kann NULL sein, wenn diese Informationen nicht erforderlich sind.

[out, optional] lpCollectDataTimeout

Ein Zeiger auf eine Variable, die die maximale Zeit in Millisekunden empfängt, die verstreichen kann, bevor eine Remote-Named Pipe Informationen über das Netzwerk überträgt. Dieser Parameter muss NULL sein, wenn sich das angegebene Pipehandle am Serverende einer Named Pipe befindet oder sich Client- und Serverprozesse auf demselben Computer befinden. Dieser Parameter kann NULL sein, wenn diese Informationen nicht erforderlich sind.

[out, optional] lpUserName

Ein Zeiger auf einen Puffer, der die der Clientanwendung zugeordnete Benutzernamenzeichenfolge empfängt. Der Server kann diese Informationen nur abrufen, wenn der Client die Pipe mit SECURITY_IMPERSONATION Zugriff geöffnet hat.

Dieser Parameter muss NULL sein, wenn sich das angegebene Pipehandle am Clientende einer Named Pipe befindet. Dieser Parameter kann NULL sein, wenn diese Informationen nicht erforderlich sind.

[in] nMaxUserNameSize

Die Größe des Puffers, der vom lpUserName-Parameter in TCHARs angegeben wird. Dieser Parameter wird ignoriert, wenn lpUserNameNULL ist.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Die GetNamedPipeHandleState-Funktion gibt erfolgreich zurück, auch wenn alle an sie übergebenen Zeiger NULL sind.

Verwenden Sie die Funktion SetNamedPipeHandleState , um den Zustand des Pipehandle festzulegen.

Windows 10 Version 1709: Pipes werden nur innerhalb eines App-Containers unterstützt, d. h. von einem UWP-Prozess zu einem anderen UWP-Prozess, der Teil derselben App ist. Außerdem müssen Named Pipes die Syntax \\.\pipe\LOCAL\ für den Pipenamen verwenden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winbase.h (Windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Pipefunktionen

Übersicht über Pipes

SetNamedPipeHandleState