PFN_WSK_GET_LOCAL_ADDRESS Rückruffunktion (wsk.h)
Die WskGetLocalAddress-Funktion ruft die lokale Transportadresse eines Sockets ab.
Syntax
PFN_WSK_GET_LOCAL_ADDRESS PfnWskGetLocalAddress;
NTSTATUS PfnWskGetLocalAddress(
[in] PWSK_SOCKET Socket,
[out] PSOCKADDR LocalAddress,
[in, out] PIRP Irp
)
{...}
Parameter
[in] Socket
Ein Zeiger auf eine WSK_SOCKET-Struktur, die das Socketobjekt für den abgefragten Socket angibt.
[out] LocalAddress
Ein Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der die lokale Transportadresse für den Socket empfängt. Der Puffer muss sich im nicht ausgelagerten Speicher befinden. Der Puffer muss auch groß genug sein, um den spezifischen SOCKADDR-Strukturtyp zu enthalten, der der Adressfamilie entspricht, die die WSK-Anwendung beim Erstellen des Sockets angegeben hat.
Bei einem verbindungsorientierten Socket, den die WSK-Anwendung in einem Überwachungssocket akzeptiert hat, entspricht die Adressfamilie der Adressfamilie, die die WSK-Anwendung beim Erstellen des Überwachungssockets angegeben hat.
[in, out] Irp
Ein Zeiger auf ein vom Aufrufer zugewiesenes IRP, das vom WSK-Subsystem verwendet wird, um den Abrufvorgang asynchron abzuschließen. Weitere Informationen zur Verwendung von IRPs mit WSK-Funktionen finden Sie unter Verwenden von IRPs mit Winsock Kernel Functions.
Rückgabewert
WskGetLocalAddress gibt einen der folgenden NTSTATUS-Codes zurück:
Rückgabecode | Beschreibung |
---|---|
|
Die lokale Transportadresse für den Socket wurde erfolgreich abgerufen. Das IRP wird mit dem Erfolgsstatus abgeschlossen. |
|
Das WSK-Subsystem konnte die lokale Transportadresse für den Socket nicht sofort abrufen. Das WSK-Subsystem führt das IRP aus, nachdem es die lokale Transportadresse für den Socket abgerufen hat. Der Status des Abrufvorgangs wird im feld IoStatus.Status des IRP zurückgegeben. |
|
Der Socket ist nicht an eine lokale Transportadresse gebunden. Das IRP wird mit dem Fehlerstatus abgeschlossen. |
|
Der Socket ist nicht mehr funktionsfähig. Das IRP wird mit dem Fehlerstatus abgeschlossen. Die WSK-Anwendung muss die WskCloseSocket- Funktion aufrufen, um den Socket so schnell wie möglich zu schließen. |
|
Fehler. Das IRP wird mit dem Fehlerstatus abgeschlossen. |
Bemerkungen
Eine WSK-Anwendung kann die WskGetLocalAddress- funktion nur für einen Socket aufrufen, der an eine lokale Transportadresse gebunden wurde.
Ein Überwachungs-, Datagramm- oder Datenstromsocket ist an eine lokale Transportadresse gebunden, wenn die WSK-Anwendung die WskBind--Funktion aufruft.
Ein verbindungsorientierter Socket ist auf eine der folgenden Arten an eine lokale Transportadresse gebunden:
- Die WSK-Anwendung ruft die WskBind--Funktion auf.
- Die WSK-Anwendung erstellt, bindet und verbindet den Socket durch Aufrufen der WskSocketConnect--Funktion.
- Das WSK-Subsystem bindet den Socket, wenn die WSK-Anwendung eine eingehende Verbindungsanforderung für einen Überwachungssocket akzeptiert.
Wenn die WskGetLocalAddress--Funktion STATUS_PENDING zurückgibt, muss der Puffer, auf den der parameter LocalAddress verweist, gültig bleiben, bis das IRP abgeschlossen ist. Wenn die WSK-Anwendung dem Puffer eine der ExAllocate-Xxx--Funktionen zugeordnet hat, kann der Speicher nicht mit der entsprechenden ExFree-Xxx--Funktion freigegeben werden, bis die IRP abgeschlossen ist. Wenn die WSK-Anwendung den Puffer auf dem Stapel zugewiesen hat, kann sie nicht von der Funktion zurückgegeben werden, die die WskGetLocalAddress-Funktion aufruft, bis die IRP abgeschlossen ist.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Zielplattform- | Universal |
Header- | wsk.h (include Wsk.h) |
IRQL- | <= DISPATCH_LEVEL |