code de contrôle FSCTL_DFS_GET_PKT_ENTRY_STATE
Le code de contrôle FSCTL_DFS_GET_PKT_ENTRY_STATE peut obtenir les mêmes informations que la fonction NetDfsGetClientInfo , mais peut fournir de meilleures performances dans certaines configurations avec des latences élevées pour les serveurs DFS. Il n’est pas recommandé d’utiliser le code de contrôle FSCTL_DFS_GET_PKT_ENTRY_STATE , sauf en cas de problèmes de performances.
Pour effectuer cette opération, appelez la fonction DeviceIoControl avec les paramètres suivants.
BOOL
WINAPI
DeviceIoControl( (HANDLE) hDevice, // handle to device
(DWORD) FSCTL_DFS_GET_PKT_ENTRY_STATE, // dwIoControlCode(LPDWORD) lpInBuffer, // input buffer
(DWORD) nInBufferSize, // size of input buffer
(LPDWORD) lpOutBuffer, // output buffer
(DWORD) nOutBufferSize, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped ); // OVERLAPPED structure
Paramètres
-
hDevice [in]
-
Handle de l’appareil. Pour obtenir un handle d’appareil, appelez la fonction CreateFile .
-
dwIoControlCode [in]
-
Code de contrôle pour l’opération. Utilisez FSCTL_DFS_GET_PKT_ENTRY_STATE pour cette opération.
-
lpInBuffer
-
Adresse d’une structure DFS_GET_PKT_ENTRY_STATE_ARG et des 1 à 3 chaînes Unicode qui suivent.
-
nInBufferSize [in]
-
Taille, en octets, de la mémoire tampon vers laquelle pointe le paramètre lpInBuffer .
-
lpOutBuffer [out]
-
Adresse d’une structure DFS_INFO_# et de toutes les chaînes et structures pointées par la structure DFS_INFO_# . La structure spécifique retournée dépend du membre Level dans la structure DFS_GET_PKT_ENTRY_STATE_ARG passée dans la mémoire tampon d’entrée.
-
nOutBufferSize [in]
-
Taille, en octets, de la mémoire tampon pointée par le paramètre lpOutBuffer . En raison des chaînes et structures référencées par la structure DFS_INFO_# retournée qui se trouvent également dans la mémoire tampon de sortie, cette mémoire tampon doit être plus grande que la structure DFS_INFO_# spécifiée.
-
lpBytesReturned [out]
-
Pointeur vers une variable qui reçoit la taille des données stockées dans la mémoire tampon de sortie, en octets.
Si la mémoire tampon de sortie est trop petite, mais au moins suffisamment grande pour contenir un DWORD, l’appel échoue, GetLastError retourne ERROR_MORE_DATA et le premier DWORD de la mémoire tampon de sortie contient la taille qui aurait été requise. Si la mémoire tampon de sortie ne peut pas contenir un DWORD , l’appel échoue avec ERROR_INSUFFICIENT_BUFFER et lpBytesReturned est égal à zéro.
Si lpOverlapped a la valeur NULL, lpBytesReturned ne peut pas être NULL. Même lorsqu’une opération ne retourne aucune donnée de sortie et que lpOutBuffer a la valeur NULL, DeviceIoControl utilise lpBytesReturned. Après une telle opération, la valeur de lpBytesReturned n’a aucun sens.
Si lpOverlapped n’a pas la valeur NULL, lpBytesReturned peut être NULL. Si ce paramètre n’est pas NULL et que l’opération retourne des données, lpBytesReturned n’a pas de signification tant que l’opération qui se chevauche n’est pas terminée. Pour récupérer le nombre d’octets retournés, appelez GetOverlappedResult. Si le paramètre hDevice est associé à un port d’achèvement des E/S, vous pouvez récupérer le nombre d’octets retournés en appelant GetQueuedCompletionStatus.
-
lpOverlapped [in]
-
Pointeur vers une structure CHEVAUCHEMENT .
Si hDevice a été ouvert sans spécifier FILE_FLAG_OVERLAPPED, lpOverlapped est ignoré.
Si hDevice a été ouvert avec l’indicateur FILE_FLAG_OVERLAPPED , l’opération est effectuée en tant qu’opération (asynchrone) superposée. Dans ce cas, lpOverlapped doit pointer vers une structure OVERLAPPED valide qui contient un handle vers un objet d’événement. Sinon, la fonction échoue de manière imprévisible.
Pour les opérations qui se chevauchent, DeviceIoControl retourne immédiatement et l’objet d’événement est signalé une fois l’opération terminée. Sinon, la fonction ne retourne pas tant que l’opération n’est pas terminée ou qu’une erreur se produit.
Valeur retournée
Si l’opération se termine correctement, DeviceIoControl retourne une valeur différente de zéro.
Si l’opération échoue ou est en attente, DeviceIoControl retourne zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows Vista |
Serveur minimal pris en charge |
Windows Server 2008 |
En-tête |
|