PFN_WSK_SEND funzione di callback (wsk.h)
La funzione WskSend invia i dati su un socket di connessione o di flusso a un indirizzo di trasporto remoto.
Sintassi
PFN_WSK_SEND PfnWskSend;
NTSTATUS PfnWskSend(
[in] PWSK_SOCKET Socket,
[in] PWSK_BUF Buffer,
[in] ULONG Flags,
[in, out] PIRP Irp
)
{...}
Parametri
[in] Socket
Puntatore a una struttura WSK_SOCKET che specifica l'oggetto socket per il socket su cui inviare i dati.
[in] Buffer
Puntatore a una struttura di WSK_BUF inizializzata che descrive il buffer di dati che contiene i dati inviati tramite il socket.
[in] Flags
Valore ULONG che contiene un OR bit per bit di una combinazione dei flag seguenti:
WSK_FLAG_NODELAY
Indirizza il trasporto sottostante per inviare immediatamente i dati e tutti i dati in coda in precedenza all'applicazione remota senza ritardo.
Questo flag è supportato dal protocollo di trasporto TCP/IP Microsoft. Questo flag potrebbe non essere supportato da altri protocolli di trasporto.
[in, out] Irp
Puntatore a un chiamante allocato IRP usato dal sottosistema WSK per completare l'operazione di invio in modo asincrono. Per altre informazioni sull'uso di IRP con funzioni WSK, vedere Uso di IRP con Funzioni kernel Winsock.
Valore restituito
WskSend restituisce uno dei codici NTSTATUS seguenti:
Codice restituito | Descrizione |
---|---|
|
I dati sono stati inviati correttamente tramite il socket. L'IRP verrà completato con lo stato di esito positivo. Il campo IoStatus.Information dell'IRP contiene il numero di byte inviati. |
|
Il sottosistema WSK non è riuscito a inviare immediatamente i dati sul socket. Il sottosistema WSK completerà l'IRP dopo aver inviato i dati sul socket. Lo stato dell'operazione di invio verrà restituito nel campo IoStatus.Status dell'IRP . Se l'operazione ha esito positivo, il campo IoStatus.Information dell'IRP conterrà il numero di byte inviati. |
|
Il socket non è più funzionale. L'IRP verrà completato con lo stato di errore. L'applicazione WSK deve chiamare la funzione WskCloseSocket per chiudere il socket il prima possibile. |
|
Un flag specificato non è supportato dal trasporto di rete sottostante. |
|
Si è verificato un errore. L'IRP verrà completato con lo stato di errore. |
Commenti
Un'applicazione WSK può chiamare la funzione WskSend solo su un socket di connessione o di flusso connesso in precedenza a un indirizzo di trasporto remoto. Un socket orientato alla connessione è connesso a un indirizzo di trasporto remoto tramite uno dei metodi seguenti:
- L'applicazione WSK connette il socket chiamando la funzione WskConnect .
- L'applicazione WSK crea, associa e connette il socket chiamando la funzione WskSocketConnect .
- Il sottosistema WSK connette il socket quando l'applicazione WSK accetta una richiesta di connessione in ingresso in un socket in ascolto.
Il sottosistema WSK non esegue alcun buffer dei dati quando invia i dati su un socket. Pertanto, una chiamata alla funzione WskSend non verrà completata dal sottosistema WSK finché tutti i dati non sono stati effettivamente inviati.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows. |
Piattaforma di destinazione | Universale |
Intestazione | wsk.h (include Wsk.h) |
IRQL | <= DISPATCH_LEVEL |