Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De meeste veiligheidsverbeterde CRT-functies, en veel die dat niet zijn, controleren hun parameters op zaken zoals of pointers geldig zijn, of gehele getallen binnen een geldig bereik vallen, of dat opsommingswaarden geldig zijn. Als er een ongeldige parameter wordt gevonden, wordt de ongeldige parameterhandler aangeroepen.
Ongeldige routine voor parameterhandler
Wanneer een C Runtime Library-functie een ongeldige parameter detecteert, wordt er informatie over de fout vastgelegd en wordt vervolgens een macro aangeroepen waarmee een ongeldige verzendfunctie voor parameters wordt verpakt. Dit is een van _invalid_parameter, _invalid_parameter_noinfoof _invalid_parameter_noinfo_noreturn. Welke dispatch-functie wordt aangeroepen, is afhankelijk van of uw code respectievelijk een foutopsporingsbuild, een retail-build of de fout niet als herstelbaar wordt beschouwd.
In builds voor foutopsporing genereert de ongeldige parametermacro meestal een mislukte assertie en een onderbrekingspunt voor het foutopsporingsprogramma voordat de verzendfunctie wordt aangeroepen. Wanneer de code wordt uitgevoerd, kan de assertie worden gerapporteerd aan de gebruiker in een dialoogvenster met de opties 'Afbreken', 'Opnieuw proberen' en 'Doorgaan' of vergelijkbare opties die afhankelijk zijn van het besturingssysteem en de CRT-versie. Met deze opties kan de gebruiker het programma onmiddellijk beëindigen, een foutopsporingsprogramma koppelen of de bestaande code laten uitvoeren waarmee de verzendfunctie wordt aangeroepen.
De dispatchfunctie voor ongeldige parameterhandlers roept de momenteel toegewezen ongeldige parameterhandler aan. Bij standaardinstellingen roepen de ongeldige parameteroproepen _invoke_watson aan, waardoor het programma wordt gesloten en een mini-dump wordt gegenereerd. Als dit is ingeschakeld door het besturingssysteem, wordt de gebruiker in een dialoogvenster gevraagd of deze de crashdump naar Microsoft wil verzenden voor analyse.
U kunt dit gedrag wijzigen door de functies _set_invalid_parameter_handler of _set_thread_local_invalid_parameter_handler te gebruiken om de ongeldige parameterhandler op uw eigen functie in te stellen. Als de functie die u opgeeft de toepassing niet beëindigt, wordt het besturingselement geretourneerd naar de functie die de ongeldige parameters heeft ontvangen. In de CRT stoppen deze functies normaal gesproken de uitvoering van de functie, zetten ze errno op een foutcode en retourneren ze een foutcode. In veel gevallen zijn de errno waarde en de retourwaarde beide EINVAL, om een ongeldige parameter aan te geven. In sommige gevallen wordt een specifiekere foutcode geretourneerd, bijvoorbeeld EBADF voor een ongeldige bestandswijzer die als parameter is doorgegeven.
Zie errnovoor meer informatie.errno
Zie ook
Beveiligingsfuncties in de CRT
C Runtime-bestanden (CRT) en C++ Standaardbibliotheek (STL) .lib