Die PROTOCOL_INFO Struktur enthält Informationen zu einem Protokoll.
Syntax
typedef struct _PROTOCOL_INFOW {
DWORD dwServiceFlags;
INT iAddressFamily;
INT iMaxSockAddr;
INT iMinSockAddr;
INT iSocketType;
INT iProtocol;
DWORD dwMessageSize;
LPWSTR lpProtocol;
} PROTOCOL_INFOW, *PPROTOCOL_INFOW, *LPPROTOCOL_INFOW;
Angehörige
dwServiceFlags
Typ: DWORD-
Eine Gruppe von Bitkennzeichnungen, die die vom Protokoll bereitgestellten Dienste angeben. Mindestens eine der folgenden Bitkennzeichnungen kann festgelegt werden.
Wert
Bedeutung
XP_CONNECTIONLESS
Wenn dieses Flag festgelegt ist, stellt das Protokoll verbindungslose Dienste (Datagramm) bereit. Wenn dieses Kennzeichen eindeutig ist, stellt das Protokoll eine verbindungsorientierte Datenübertragung bereit.
XP_GUARANTEED_DELIVERY
Wenn dieses Kennzeichen festgelegt ist, garantiert das Protokoll, dass alle gesendeten Daten das beabsichtigte Ziel erreichen. Wenn diese Kennzeichnung eindeutig ist, gibt es keine solche Garantie.
XP_GUARANTEED_ORDER
Wenn dieses Kennzeichen festgelegt ist, garantiert das Protokoll, dass Daten in der Reihenfolge eingehen, in der sie gesendet wurde. Beachten Sie, dass diese Eigenschaft nicht die Lieferung der Daten garantiert, nur ihre Bestellung. Wenn diese Kennzeichnung eindeutig ist, wird die Reihenfolge der gesendeten Daten nicht garantiert.
XP_MESSAGE_ORIENTED
Wenn dieses Flag festgelegt ist, ist das Protokoll nachrichtenorientiert. Ein nachrichtenorientiertes Protokoll berücksichtigt Nachrichtengrenzen. Wenn dieses Kennzeichen klar ist, ist das Protokoll streamorientiert, und das Konzept der Nachrichtengrenzen ist irrelevant.
XP_PSEUDO_STREAM
Wenn dieses Flag festgelegt ist, ist das Protokoll ein nachrichtenorientiertes Protokoll, das Nachrichtengrenzen für alle Empfangsvorgänge ignoriert.
Diese optionale Funktion ist nützlich, wenn Sie nicht möchten, dass das Protokoll Nachrichten framet. Eine Anwendung, die streamorientierte Merkmale erfordert, kann einen Socket mit Typ SOCK_STREAM für Transportprotokolle öffnen, die diese Funktionalität unterstützen, unabhängig vom Wert von iSocketType.
XP_GRACEFUL_CLOSE
Wenn dieses Kennzeichen festgelegt ist, unterstützt das Protokoll Zwei-Phasen-Schließvorgänge, auch als ordnungsgemäßer Schließensvorgänge bezeichnet. Wenn dieses Flag eindeutig ist, unterstützt das Protokoll nur abbruchive Close-Vorgänge.
XP_EXPEDITED_DATA
Wenn dieses Kennzeichen festgelegt ist, unterstützt das Protokoll beschleunigte Daten, auch als dringende Daten bezeichnet.
XP_CONNECT_DATA
Wenn dieses Flag festgelegt ist, unterstützt das Protokoll Verbindungsdaten.
XP_DISCONNECT_DATA
Wenn dieses Flag festgelegt ist, unterstützt das Protokoll die Verbindung von Daten.
XP_SUPPORTS_BROADCAST
Wenn dieses Flag festgelegt ist, unterstützt das Protokoll einen Übertragungsmechanismus.
XP_SUPPORTS_MULTICAST
Wenn dieses Flag festgelegt ist, unterstützt das Protokoll einen Multicastmechanismus.
XP_BANDWIDTH_ALLOCATION
Wenn dieses Kennzeichen festgelegt ist, unterstützt das Protokoll einen Mechanismus zum Zuordnen einer garantierten Bandbreite an eine Anwendung.
XP_FRAGMENTATION
Wenn dieses Kennzeichen festgelegt ist, unterstützt das Protokoll die Nachrichtenfragmentierung; Die MTU des physischen Netzwerks wird von Anwendungen ausgeblendet.
XP_ENCRYPTS
Wenn dieses Flag festgelegt ist, unterstützt das Protokoll die Datenverschlüsselung.
iAddressFamily
Typ: INT-
Wert, der als af Parameter übergeben werden soll, wenn die Socket--Funktion aufgerufen wird, um einen Socket für das Protokoll zu öffnen. Dieser Adressfamilienwert definiert eindeutig die Struktur von Protokolladressen, die auch als sockaddr Strukturen bezeichnet werden, die vom Protokoll verwendet werden.
iMaxSockAddr
Typ: INT-
Maximale Länge einer vom Protokoll unterstützten Socketadresse in Byte.
iMinSockAddr
Typ: INT-
Mindestlänge einer Socketadresse, die vom Protokoll unterstützt wird, in Byte.
iSocketType
Typ: INT-
Wert, der als Typ Parameter übergeben werden soll, wenn die Socket--Funktion aufgerufen wird, um einen Socket für das Protokoll zu öffnen.
Beachten Sie: Wenn XP_PSEUDO_STREAM in dwServiceFlagsfestgelegt ist, kann die Anwendung SOCK_STREAM als Typ Parameter angeben, um Socket-, unabhängig vom Wert von iSocketType.
iProtocol
Typ: INT-
Wert, der als -Protokoll--Parameter übergeben werden soll, wenn die Socket--Funktion aufgerufen wird, um einen Socket für das Protokoll zu öffnen.
dwMessageSize
Typ: DWORD-
Maximale Nachrichtengröße, die vom Protokoll in Byte unterstützt wird. Dies ist die maximale Größe einer Nachricht, die vom Host gesendet oder empfangen werden kann. Bei Protokollen, die die Nachrichtenrahmen nicht unterstützen, kann die tatsächliche maximale Größe einer Nachricht, die an eine bestimmte Adresse gesendet werden kann, kleiner als dieser Wert sein.
Die folgenden speziellen Nachrichtengrößenwerte werden definiert.
Wert
Bedeutung
0
Das Protokoll ist streamorientiert; das Konzept der Nachrichtengröße ist nicht relevant.
0xFFFFFFFF
Das Protokoll ist nachrichtenorientiert, aber es gibt keine maximale Nachrichtengröße.
lpProtocol
Typ: LPTSTR-
Zeiger auf eine Zeichenfolge mit Nullen, die einen Namen für das Protokoll bereitstellt; Beispiel: "SPX2".
Bemerkungen
Anmerkung
Der nspapi.h-Header definiert PROTOCOL_INFO als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.