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 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 sur le socket.
[in] Flags
Valeur ULONG qui contient une 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, ainsi que 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é par 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 d’IRPs avec des fonctions WSK, consultez Utilisation d’IRPs avec winsock Kernel Functions.
Valeur de retour
WskSend retourne l’un des codes NTSTATUS suivants :
Retourner le code | Description |
---|---|
|
Les données ont été envoyées avec succès sur le socket. L’IRP sera terminé avec l’état de réussite. Le champ IoStatus.Information du protocole IRP contient le nombre d’octets 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. L’état de l’opération d’envoi est retourné dans le champ IoStatus.Status du protocole IRP. Si l’opération réussit, le champ IoStatus.Information du protocole IRP contient le nombre d’octets envoyés. |
|
Le socket n’est plus fonctionnel. L’IRP est terminé avec l’état d’échec. 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 s’est produite. L’IRP est terminé avec l’état d’échec. |
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 sur un socket. Par conséquent, un appel à la fonction WskSend ne sera pas terminé par le sous-système WSK tant que toutes les données n’ont pas été envoyées.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows. |
plateforme cible | Universel |
d’en-tête | wsk.h (include Wsk.h) |
IRQL | <= DISPATCH_LEVEL |