FSCTL_SRV_REQUEST_RESUME_KEY codice di controllo
Il codice di controllo FSCTL_SRV_REQUEST_RESUME_KEY viene usato per recuperare un riferimento al file opaco da usare con il codice di controllo IOCTL_COPYCHUNK .
Per eseguire questa operazione, chiamare la funzione DeviceIoControl con i parametri seguenti.
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
);
Parametri
-
hDevice [in]
-
Handle al file per il quale deve essere richiesta la chiave del file di origine. Per ottenere questo handle, chiamare la funzione CreateFile .
-
dwIoControlCode [in]
-
Codice di controllo per l'operazione. Usare FSCTL_SRV_REQUEST_RESUME_KEY per questa operazione.
-
lpInBuffer
-
Non usato con questa operazione; impostato su NULL.
-
nInBufferSize [in]
-
Non usato con questa operazione; impostato su zero.
-
lpOutBuffer [out]
-
Puntatore al buffer di output, una struttura SRV_REQUEST_RESUME_KEY . Per altre informazioni, vedere la sezione Osservazioni.
-
nOutBufferSize [in]
-
Dimensioni in byte del buffer di output.
-
lpBytesReturned [out]
-
Puntatore a una variabile che riceve le dimensioni dei dati archiviati nel buffer di output, in byte.
Se il buffer di output è troppo piccolo, la chiamata ha esito negativo, la funzione GetLastError restituisce ERROR_INSUFFICIENT_BUFFER e lpBytesReturned è zero.
Se il parametro lpOverlapped è NULL, lpBytesReturned non può essere NULL. Anche quando un'operazione non restituisce dati di output e il parametro lpOutBuffer è NULL, DeviceIoControl usa lpBytesReturned. Dopo un'operazione di questo tipo, il valore di lpBytesReturned è senza significato.
Se lpOverlapped non è NULL, lpBytesReturned può essere NULL. Se lpOverlapped non è NULL e l'operazione restituisce i dati, lpBytesReturned non è significativo fino al completamento dell'operazione sovrapposta. Per recuperare il numero di byte restituiti, chiamare la funzione GetOverlappedResult . Se il parametro hDevice è associato a una porta di completamento di I/O, è possibile recuperare il numero di byte restituiti chiamando la funzione GetQueuedCompletionStatus .
-
lpOverlapped [in]
-
Puntatore a una struttura OVERLAPPED .
Se il parametro hDevice è stato aperto senza specificare FILE_FLAG_OVERLAPPED, lpOverlapped viene ignorato .
Se hDevice è stato aperto con il flag FILE_FLAG_OVERLAPPED , l'operazione viene eseguita come operazione sovrapposta (asincrona). In questo caso, lpOverlapped deve puntare a una struttura OVERLAPPED valida che contiene un handle a un oggetto evento. In caso contrario, la funzione non riesce in modi imprevedibili.
Per le operazioni sovrapposte, DeviceIoControl restituisce immediatamente e l'oggetto evento viene segnalato al termine dell'operazione. In caso contrario, la funzione non restituisce fino al completamento dell'operazione o fino a quando non si verifica un errore.
Valore restituito
Se l'operazione viene completata correttamente, DeviceIoControl restituisce un valore diverso da zero.
Se l'operazione ha esito negativo o è in sospeso, DeviceIoControl restituisce zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Osservazioni
Questo codice di controllo non ha alcun file di intestazione associato. È necessario definire il codice di controllo e le strutture di dati come indicato di seguito.
#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;
Questi membri possono essere descritti di seguito.
Membro | Descrizione |
---|---|
ResumeKey |
Valore opaco che identifica il file di origine nel server. |
Timestamp |
Valore opaco che identifica l'ora di apertura del file. |
Pid |
Valore opaco che identifica il processo che ha aperto il file. |
Chiave |
Struttura SRV_RESUME_KEY . Per eseguire un'operazione di copia lato server, usare questa struttura con il codice di controllo IOCTL_COPYCHUNK . |
ContextLength |
Questo membro è riservato per l'uso del sistema; non usare. |
Contesto |
Questo membro è riservato per l'uso del sistema; non usare. |
Vedi anche