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.
[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 |