Funzione JetGetSystemParameter

Si applica a: Windows | Windows Server

Funzione JetGetSystemParameter

La funzione JetGetSystemParameter legge le numerose impostazioni di configurazione del motore di database.

    JET_ERR JET_API JetGetSystemParameter(
      __in          JET_INSTANCE instance,
      __in          JET_SESID sesid,
      __in          unsigned long paramid,
      __in_out_opt  JET_API_PTR* plParam,
      __out_opt     JET_PSTR szParam,
      __in          unsigned long cbMax
    );

Parametri

Istanza

Istanza da usare per questa chiamata.

Per Windows 2000, questo parametro viene ignorato e deve sempre essere NULL.

Per le versioni successive e Windows XP, questo parametro è in qualche modo sovraccaricato. Se il motore è operativo in modalità legacy (modalità di compatibilità windows 2000) in cui è supportata solo un'istanza, questo parametro può essere NULL o può contenere l'istanza effettiva restituita da JetInit. In entrambi i casi, tutte le impostazioni dei parametri di sistema vengono lette da tale istanza. Se il motore è operativo in modalità multiistanza, questo parametro può essere NULL o un puntatore a un'istanza creata usando JetInit o JetCreateInstance. Quando questo parametro è NULL , l'impostazione del parametro di sistema globale (o impostazione predefinita) viene letta. Quando questo parametro è un'istanza, l'impostazione del parametro di sistema per tale istanza viene letto.

sesid

Sessione da usare per questa chiamata.

Se specificato, l'istanza specificata viene ignorata e verrà usata l'istanza associata alla sessione.

paramid

ID del parametro di sistema che verrà letto.

Per un elenco completo dei parametri di sistema e delle relative proprietà, vedere Parametri di sistema .

plParam

Buffer di output che riceve il valore del parametro di sistema selezionato se il parametro di sistema è di un tipo integer.

szParam

Buffer di output che riceve il valore del parametro di sistema selezionato se il parametro di sistema è di tipo stringa.

cbMax

Dimensione massima in byte del buffer di output stringa.

Valore restituito

Questa funzione restituisce il tipo di dati JET_ERR con uno dei codici restituiti seguenti. Per altre informazioni sugli errori ESE possibili, vedere Errori del motore di archiviazione estendibili e parametri di gestione degli errori.

Codice restituito

Descrizione

JET_errSuccess

Operazione riuscita.

JET_errClientRequestToStopJetService

Non è possibile completare l'operazione perché tutte le attività nell'istanza associata alla sessione non sono state interrotte in seguito a una chiamata a JetStopService.

JET_errInitInProgress

Non è possibile completare l'operazione perché l'istanza associata alla sessione viene inizializzata.

JET_errInstanceUnavailable

Non è possibile completare l'operazione perché l'istanza associata alla sessione ha rilevato un errore irreversibile che richiede che l'accesso a tutti i dati venga revocato per proteggere l'integrità dei dati. Questo errore verrà restituito solo da Windows XP e versioni successive.

JET_errInvalidParameter

Uno dei parametri forniti contiene un valore imprevisto o contiene un valore che non ha senso quando si combina con il valore di un altro parametro.

Ciò può verificarsi per JetGetSystemParameter quando:

  • L'ID del parametro di sistema specificato non è valido o non supportato.

  • Il parametro di sistema specificato richiede che venga fornito il buffer di output intero e che il puntatore del buffer di output fosse NULL.

  • Il parametro di sistema specificato richiede che venga fornito un buffer di output stringa e che il puntatore del buffer di output fosse NULL.

    Windows Vista: Questa operazione può verificarsi solo nelle versioni di Windows Vista e versioni successive.

  • Il parametro di sistema specificato richiede che venga fornito un buffer di output stringa e le dimensioni del buffer di output siano troppo piccole per accettare una stringa con terminazione Null.

    Windows Vista: Questa operazione può verificarsi solo nelle versioni di Windows Vista e versioni successive.

  • Impossibile leggere il parametro di sistema specificato perché è di sola scrittura.

  • Il parametro di sistema specificato è globale solo e viene eseguito un tentativo di leggere un valore specifico dell'istanza per tale parametro di sistema. Questa operazione può verificarsi solo nelle versioni di Windows XP e versioni successive.

  • Il parametro di sistema specificato è solo per istanza e viene eseguito un tentativo di leggere il valore globale per tale parametro di sistema. Questa operazione può verificarsi solo nelle versioni di Windows XP e versioni successive.

JET_errNotInitialized

Non è possibile completare l'operazione perché l'istanza associata alla sessione non è ancora stata inizializzata.

JET_errRestoreInProgress

Non è possibile completare l'operazione perché un'operazione di ripristino è in corso nell'istanza associata alla sessione.

JET_errTermInProgress

Non è possibile completare l'operazione perché l'istanza associata alla sessione viene arrestata.

JET_errInvalidSesid

L'handle di sessione non è valido o fa riferimento a una sessione chiusa. Questo errore non viene restituito in tutte le circostanze. Gli handle vengono convalidati solo su base ottimale.

JET_errInvalidInstance

L'handle di istanza non è valido o fa riferimento a un'istanza che è stata arrestata. Questo errore non viene restituito in tutte le circostanze. Gli handle vengono convalidati solo su base ottimale.

Windows Vista: Questo errore verrà restituito solo da Windows Vista e versioni successive.

JET_wrnBufferTruncated

L'operazione è stata completata correttamente, ma il buffer di output era troppo piccolo per ricevere l'intera impostazione del parametro di sistema.

Il buffer di output è stato riempito con la maggior parte dell'impostazione del parametro di sistema come sarebbe adatta. Se il buffer di output è almeno un carattere di lunghezza, la stringa nel buffer di output verrà terminata con null.

Nota Questo errore non viene restituito da tutte le versioni. Per altre informazioni, vedere la sezione Osservazioni.

JET_errBufferTooSmall

L'operazione non è riuscita perché il buffer di output era troppo piccolo per ricevere l'intera impostazione del parametro di sistema.

Nota Questo errore non viene restituito in alcuni casi per mantenere la compatibilità dell'applicazione. Per altre informazioni, vedere la sezione Osservazioni.

Windows Vista: Questo errore verrà restituito solo da Windows Vista e versioni successive.

In caso di esito positivo, il buffer di output appropriato per il parametro di sistema richiesto verrà impostato sul valore di tale parametro di sistema.

In caso di errore, lo stato dei buffer di output non verrà definito.

Commenti

C'è un problema importante in questa API presente in tutte le versioni. Se viene richiesto un parametro di sistema con un valore stringa e il buffer di output è troppo piccolo per ricevere l'intera impostazione del parametro di sistema, JET_wrnBufferTruncated non verrà restituito. JET_errSuccess viene restituito invece. Se la lunghezza della stringa restituita è uguale alla dimensione del buffer di output meno il terminatore NULL , il chiamante deve reagire come se JET_wrnBufferTruncated restituito. Se viene specificato un buffer di output stringa di dimensioni zero, il chiamante deve reagire come se JET_errInvalidParameter fosse restituito.

Requisiti

Requisito Valore

Client

Richiede Windows Vista, Windows XP o Windows 2000 Professional.

Server

Richiede Windows Server 2008, Windows Server 2003 o Windows 2000 Server.

Intestazione

Dichiarato in Esent.h.

Libreria

Usare ESENT.lib.

DLL

Richiede ESENT.dll.

Unicode

Implementato come JetGetSystemParameterW (Unicode) e JetGetSystemParameterA (ANSI).

Vedere anche

JET_API_PTR
JET_ERR
JET_INSTANCE
JET_SESID
JetCreateInstance
JetInit
JetSetSystemParameter
JetStopService
Parametri di sistema