Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Une fois qu’une application WSK (Winsock Kernel) s’est correctement attachée au sous-système WSK, elle peut effectuer des opérations de contrôle sur l’objet client ( WSK_CLIENT) retourné par le sous-système WSK pendant la pièce jointe. Ces opérations de contrôle ne sont pas spécifiques à un socket particulier, mais ont plutôt une portée plus générale. Pour plus d’informations sur chacune des opérations de contrôle qui peuvent être effectuées sur un objet client, consultez Opérations de contrôle client WSK.
Une application WSK effectue des opérations de contrôle client en appelant la fonction WskControlClient . La fonction WskControlClient est pointée vers laquelle pointe le membre WskControlClient de la structure WSK_PROVIDER_DISPATCH qui a été retournée par le sous-système WSK pendant la pièce jointe.
L’exemple de code suivant montre comment une application WSK peut utiliser l’opération de contrôle client WSK_TRANSPORT_LIST_QUERY pour récupérer une liste de transports réseau disponibles qui peuvent être spécifiés lors de la création d’un nouveau socket.
// Function to retrieve a list of available network transports
NTSTATUS
GetTransportList(
PWSK_PROVIDER_NPI WskProviderNpi,
PWSK_TRANSPORT TransportList,
ULONG MaxTransports,
PULONG TransportsRetrieved
)
{
SIZE_T BytesRetrieved;
NTSTATUS Status;
// Perform client control operation
Status =
WskProviderNpi->Dispatch->
WskControlClient(
WskProviderNpi->Client,
WSK_TRANSPORT_LIST_QUERY,
0,
NULL,
MaxTransports * sizeof(WSK_TRANSPORT),
TransportList,
&BytesRetrieved,
NULL // No IRP for this control operation
);
// Convert bytes retrieved to transports retrieved
TransportsRetrieved = BytesRetrieved / sizeof(WSK_TRANSPORT);
// Return status of client control operation
return Status;
}