Funzione ExSetResourceOwnerPointer (wdm.h)
La routine ExSetResourceOwnerPointer imposta il puntatore del thread proprietario per una risorsa executive.
Sintassi
void ExSetResourceOwnerPointer(
[in, out] PERESOURCE Resource,
[in] PVOID OwnerPointer
);
Parametri
[in, out] Resource
Puntatore a una risorsa executive di proprietà del thread corrente.
[in] OwnerPointer
Puntatore a un puntatore al thread proprietario di tipo ERESOURCE_THREAD (per altri requisiti, vedere la sezione Osservazioni seguente).
Valore restituito
Nessuno
Osservazioni
ExSetResourceOwnerPointer, usato insieme a ExReleaseResourceForThreadLite, fornisce un mezzo per un thread (che funge da thread di resource manager) per acquisire e rilasciare risorse per l'uso da parte di un altro thread (che funge da thread utente di risorse).
Dopo aver chiamato ExSetResourceOwnerPointer per una risorsa specifica, l'unica routine che può essere chiamata per tale risorsa è ExReleaseResourceForThreadLite.
Il thread di Resource Manager acquisisce la proprietà della risorsa e passa la proprietà al thread utente chiamando ExSetResourceOwnerPointer. Il chiamante deve allocare la memoria per il valore ERESOURCE_THREAD a cui punta OwnerPointer nella memoria di sistema e questa memoria deve rimanere allocata fino a quando non viene restituita ExReleaseResourceForThreadLite. Il chiamante deve anche impostare i due bit di ordine ridotto del valore ERESOURCE_THREAD a cui punta OwnerPointer su uno. Questa codifica viene usata internamente dai servizi delle risorse per distinguere tra indirizzi di proprietario e thread.
Quando il thread utente viene eseguito con la risorsa, il thread di Resource Manager rilascia la proprietà del thread utente della risorsa chiamando ExReleaseResourceForThreadLite. Il parametro di input ResourceThreadId viene impostato sul valore del parametro OwnerPointer utilizzato nella chiamata precedente a exSetResourceOwnerPointer che ha assegnato alla risorsa il thread di lavoro.