PFN_WSK_SEND fonction de rappel (wsk.h)
La fonction WskSend envoie des données via un socket orienté connexion ou de flux à une adresse de transport distante.
Syntaxe
PFN_WSK_SEND PfnWskSend;
NTSTATUS PfnWskSend(
[in] PWSK_SOCKET Socket,
[in] PWSK_BUF Buffer,
[in] ULONG Flags,
[in, out] PIRP Irp
)
{...}
Paramètres
[in] Socket
Pointeur vers une structure de WSK_SOCKET qui spécifie l’objet socket pour le socket sur lequel envoyer les données.
[in] Buffer
Pointeur vers une structure de WSK_BUF initialisée qui décrit la mémoire tampon de données qui contient les données envoyées par le socket.
[in] Flags
Valeur ULONG qui contient un OR au niveau du bit d’une combinaison des indicateurs suivants :
WSK_FLAG_NODELAY
Dirige le transport sous-jacent pour envoyer immédiatement les données, et toutes les données précédemment mises en file d’attente, à l’application distante sans délai.
Cet indicateur est pris en charge par le protocole de transport TCP/IP Microsoft. Cet indicateur peut ne pas être pris en charge par d’autres protocoles de transport.
[in, out] Irp
Pointeur vers un IRP alloué à l’appelant que le sous-système WSK utilise pour terminer l’opération d’envoi de manière asynchrone. Pour plus d’informations sur l’utilisation des irps avec des fonctions WSK, consultez Utilisation des irps avec les fonctions du noyau Winsock.
Valeur retournée
WskSend retourne l’un des codes NTSTATUS suivants :
Code de retour | Description |
---|---|
|
Les données ont été correctement envoyées via le socket. Le IRP sera terminé avec succès status. Le champ IoStatus.Information de l’IRP contient le nombre d’octets qui ont été envoyés. |
|
Le sous-système WSK n’a pas pu envoyer les données sur le socket immédiatement. Le sous-système WSK termine l’IRP une fois qu’il a envoyé les données sur le socket. Le status de l’opération d’envoi sera retourné dans le champ IoStatus.Status de l’IRP. Si l’opération réussit, le champ IoStatus.Information de l’IRP contiendra le nombre d’octets qui ont été envoyés. |
|
Le socket n’est plus fonctionnel. L’IRP sera terminé avec l’échec status. L’application WSK doit appeler la fonction WskCloseSocket pour fermer le socket dès que possible. |
|
Un indicateur spécifié n’est pas pris en charge par le transport réseau sous-jacent. |
|
Une erreur est survenue. L’IRP sera terminé avec l’échec status. |
Remarques
Une application WSK peut appeler la fonction WskSend uniquement sur un socket orienté connexion ou de flux qui a été précédemment connecté à une adresse de transport distante. Un socket orienté connexion est connecté à une adresse de transport distante par l’une des méthodes suivantes :
- L’application WSK connecte le socket en appelant la fonction WskConnect .
- L’application WSK crée, lie et connecte le socket en appelant la fonction WskSocketConnect .
- Le sous-système WSK connecte le socket lorsque l’application WSK accepte une demande de connexion entrante sur un socket d’écoute.
Le sous-système WSK n’effectue aucune mise en mémoire tampon des données lorsqu’il envoie des données via un socket. Par conséquent, un appel à la fonction WskSend ne sera pas effectué par le sous-système WSK tant que toutes les données n’auront pas été réellement envoyées.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Windows Vista et les versions ultérieures des systèmes d’exploitation Windows. |
Plateforme cible | Universal |
En-tête | wsk.h (inclure Wsk.h) |
IRQL | <= DISPATCH_LEVEL |