Funzione KeExpandKernelStackAndCallout (ntddk.h)
La routine KeExpandKernelStackAndCallout chiama una routine con una quantità garantita di spazio nello stack.
Sintassi
NTSTATUS
KeExpandKernelStackAndCallout (
_In_ PEXPAND_STACK_CALLOUT Callout,
_In_opt_ PVOID Parameter,
_In_ SIZE_T Size
);
Parametri
[in] Callout
Puntatore a una routine ExpandedStackCall.
[in, optional] Parameter
Specifica il parametro da passare alla routine expandedStackCall.
[in] Size
Specifica il numero di byte nello stack da fornire alla routine ExpandedStackCall. Questo valore deve essere sufficientemente grande per supportare l'utilizzo dello stack della routine ExpandedStackCall e qualsiasi chiamata che potrebbe essere eseguita da questa routine. Questo valore non deve superare MAXIMUM_EXPANSION_SIZE.
Valore restituito
Restituisce l'esito positivo se l'allocazione dello stack ha esito positivo e il callout è stato chiamato. In caso contrario, restituisce uno stato di errore.
Osservazioni
KeExpandKernelStackAndCallout espande lo stack del kernel byte di dimensioni da usare nella routine ExpandedStackCall. Se nello stack non è disponibile spazio sufficiente, KeExpandKernelStackAndCallout alloca un nuovo segmento dello stack del kernel. La routine chiama quindi la routine ExpandedStackCall.
In Windows 7, Windows Server 2008 R2 e versioni successive di Windows, è consigliabile usare la routine KeExpandKernelStackAndCalloutEx anziché KeExpandKernelStackAndCallout. KeExpandKernelStackAndCalloutEx è simile a KeExpandKernelStackAndCallout, ma ha parametri aggiuntivi e può essere chiamato in IRQL <= DISPATCH_LEVEL.
Il thread chiamante non deve chiamare la routine PsTerminateSystemThread fino a quando non viene restituita la routine di ExpandedStackCall del thread. PsTerminateSystemThread controlla se la routine ExpandedStackCall è ancora attiva e, in caso affermativo, genera un controllo dei bug.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Disponibile a partire da Windows Server 2003 su processori basati su x64 e a partire da Windows Vista in tutti i processori. |
piattaforma di destinazione | Universale |
intestazione | ntddk.h (include Ntddk.h) |
libreria | NtosKrnl.lib |
dll | NtosKrnl.exe |
IRQL | <= APC_LEVEL |