IOCTL_VMGENCOUNTER_READ IOCTL (vmgenerationcounter.h)

Il codice di controllo IOCTL_VMGENCOUNTER_READ recupera un identificatore di generazione di macchine virtuali.

Buffer di input

Non usato con questa operazione; impostato su NULL.

Lunghezza del buffer di input

Non usato con questa operazione; impostato su zero.

Buffer di output

Puntatore a un buffer che riceve una struttura di dati VM_GENCOUNTER .

Lunghezza del buffer di output

Dimensioni in byte del buffer di output.

Commenti

Per eseguire questa operazione, chiamare la funzione DeviceIoControl con i parametri seguenti.

BOOL 
   WINAPI 
   DeviceIoControl( (HANDLE)       hDevice,         // handle to device
                    (DWORD)        IOCTL_VMGENCOUNTER_READ, // 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
Parametri Descrizione
hDevice [in] Handle per il dispositivo. Per ottenere un handle del dispositivo, chiamare la funzione CreateFile .
dwIoControlCode [in] Codice di controllo per l'operazione. Usare IOCTL_VMGENCOUNTER_READ 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 a un buffer che riceve una struttura di dati VM_GENCOUNTER .
nOutBufferSize [in] Dimensioni in byte del buffer di output.
lpBytesReturned [out] LPDWORD

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, GetLastError restituisce ERROR_INSUFFICIENT_BUFFER e lpBytesReturned è zero.

Se lpOverlapped è NULL, lpBytesReturned non può essere NULL. Anche quando un'operazione non restituisce dati di output e 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 questo parametro non è NULL e l'operazione restituisce dati, lpBytesReturned è senza significato fino al completamento dell'operazione sovrapposta. Per recuperare il numero di byte restituiti, chiamare GetOverlappedResult. Se il parametro hDevice è associato a una porta di completamento di I/O, è possibile recuperare il numero di byte restituiti chiamando GetQueuedCompletionStatus.

lpOverlapped [in] LPOVERLAPPED

Puntatore a una struttura OVERLAPPED .

Se 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 finché l'operazione non è stata completata o si verifica un errore.

 

Per informazioni sull'identificatore di generazione della macchina virtuale, vedere Identificatore di generazione di macchine virtuali.

Requisiti

Requisito Valore
Client minimo supportato Windows 8 [solo app desktop]
Server minimo supportato Windows Server 2012 [solo app desktop]
Intestazione vmgenerationcounter.h

Vedi anche

Deviceiocontrol

VM_GENCOUNTER