Condividi tramite


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

Vedere anche

expandedStackCall

KeExpandKernelStackAndCalloutEx

PsTerminateSystemThread