Code de contrôle de la clé de reprise de la _ demande FSCTL SRV _ _ _
Le code de contrôle de la clé de reprise de la _ _ demande _ _ FSCTL SRV est utilisé pour récupérer une référence de fichier opaque à utiliser avec le code de contrôle IOCTL _ COPYCHUNK .
Pour effectuer cette opération, appelez la fonction DeviceIoControl avec les paramètres suivants.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to device
FSCTL_SRV_REQUEST_RESUME_KEY, // dwIoControlCode
NULL, // lpInBuffer
0, // nInBufferSize
(LPVOID) lpOutBuffer, // output buffer
(DWORD) nOutBufferSize, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
Paramètres
-
hDevice [ dans]
-
Handle du fichier pour lequel la clé du fichier source doit être demandée. Pour obtenir ce descripteur, appelez la fonction CreateFile .
-
dwIoControlCode [ dans]
-
Code de contrôle de l’opération. Utilisez la _ _ clé de _ reprise _ de la demande FSCTL SRV pour cette opération.
-
lpInBuffer
-
Non utilisé avec cette opération ; Affectez la valeur null.
-
nInBufferSize [ dans]
-
Non utilisé avec cette opération ; défini à zéro.
-
lpOutBuffer [ à]
-
Pointeur vers la mémoire tampon de sortie, une structure de _ clé de _ reprise _ de demande SRV . Pour plus d'informations, consultez la section Notes.
-
nOutBufferSize [ dans]
-
Taille de la mémoire tampon de sortie en octets.
-
lpBytesReturned [ à]
-
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, l’appel échoue, la fonction GetLastError retourne l' erreur _ _ mémoire tampon insuffisante et lpBytesReturned est égal à zéro.
Si le paramètre lpOverlapped a la valeur null, lpBytesReturned ne peut pas avoir la valeur null. Même lorsqu’une opération ne retourne aucune donnée de sortie et que le paramètre lpOutBuffer a la valeur null, DeviceIoControl utilise lpBytesReturned. Après une telle opération, la valeur de lpBytesReturned est sans signification.
Si lpOverlapped n’a pas la valeur null, LpBytesReturned peut avoir la valeur null. Si lpOverlapped n’a pas la valeur null et que l’opération retourne des données, lpBytesReturned n’a aucun sens tant que l’opération avec chevauchement n’est pas terminée. Pour récupérer le nombre d’octets retournés, appelez la fonction GetOverlappedResult . Si le paramètre hDevice est associé à un port de terminaison d’e/s, vous pouvez récupérer le nombre d’octets renvoyés en appelant la fonction GetQueuedCompletionStatus .
-
lpOverlapped [ dans]
-
Pointeur vers une structure OVERLAPPED .
Si le paramètre hDevice a été ouvert sans spécifier d' indicateur de fichier avec _ _ chevauchement, lpOverlapped est ignoré.
Si hDevice a été ouvert avec l’indicateur de fichier avec l' indicateur de _ _ chevauchement , l’opération est exécutée en tant qu’opération Overlapped (asynchrone). Dans ce cas, lpOverlapped doit pointer vers une structure OVERLAPPED valide qui contient un handle vers un objet d’événement. Dans le cas contraire, la fonction échoue de façon imprévisible.
Pour les opérations avec chevauchement, DeviceIoControl retourne immédiatement, et l’objet d’événement est signalé lorsque l’opération est terminée. Sinon, la fonction ne retourne pas jusqu’à ce que l’opération soit terminée ou jusqu’à ce qu’une erreur se produise.
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 la valeur zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Ce code de contrôle n’a aucun fichier d’en-tête associé. Vous devez définir le code de contrôle et les structures de données comme suit.
#define FSCTL_SRV_REQUEST_RESUME_KEY CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
typedef struct _SRV_RESUME_KEY {
UINT64 ResumeKey;
UINT64 Timestamp;
UINT64 Pid;
} SRV_RESUME_KEY, *PSRV_RESUME_KEY;
typedef struct _SRV_REQUEST_RESUME_KEY {
SRV_RESUME_KEY Key;
ULONG ContextLength;
BYTE Context[1];
} SRV_REQUEST_RESUME_KEY, *PSRV_REQUEST_RESUME_KEY;
Ces membres peuvent être décrits comme suit.
| Membre | Description |
|---|---|
| ResumeKey |
Valeur opaque qui identifie le fichier source sur le serveur. |
| Confirmé |
Valeur opaque qui identifie l’heure à laquelle le fichier a été ouvert. |
| ELECTRIQUE |
Valeur opaque qui identifie le processus qui a ouvert le fichier. |
| Essentiel |
Structure de _ _ clé de reprise SRV . Pour effectuer une opération de copie côté serveur, utilisez cette structure avec le code de contrôle IOCTL _ COPYCHUNK . |
| ContextLength |
Ce membre est réservé à l’usage du système ; n’utilisez pas. |
| Contexte |
Ce membre est réservé à l’usage du système ; n’utilisez pas. |