ObQueryNameString-Funktion (ntifs.h)
Die ObQueryNameString-Routine gibt den Namen eines bestimmten Objekts an, auf das der Aufrufer einen Zeiger hat, falls vorhanden.
Syntax
NTSTATUS ObQueryNameString(
[in] PVOID Object,
[out, optional] POBJECT_NAME_INFORMATION ObjectNameInfo,
[in] ULONG Length,
[out] PULONG ReturnLength
);
Parameter
[in] Object
Ein Zeiger auf das Objekt, für das der Name angefordert wird. Dieser Parameter ist erforderlich und darf nicht NULL sein.
[out, optional] ObjectNameInfo
Ein Zeiger auf einen vom Aufrufer zugewiesenen Puffer des folgenden Typs, der die Objektnameninformationen empfängt:
typedef struct _OBJECT_NAME_INFORMATION {
UNICODE_STRING Name;
} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
Dieser Parameter ist optional und kann NULL sein. Wenn ObjectNameInfoNULL ist, muss die Länge 0 sein.
[in] Length
Die Größe des Puffers in Bytes, auf den von ObjectNameInfo verwiesen wird. Dieser Parameter ist optional und kann null sein. Wenn Length 0 ist, empfängt ReturnLength die Größe des Puffers in Bytes, die zum Aufnehmen der Objektnameninformationen erforderlich ist. Eine angemessene Größe für den Puffer, um die meisten Objektnamen aufzunehmen, beträgt 1024 Bytes. Wenn Length 0 ist, kann ObjectNameInfoNULL sein.
[out] ReturnLength
Ein Zeiger auf eine vom Aufrufer zugewiesene Variable, die die Größe der zurückgegebenen Objektnameninformationen in Bytes empfängt. Der Objektname (sofern vorhanden) enthält einen NULL-Abschluss und alle Pfadtrennzeichen "\" im Namen. Wenn ObQueryNameStringSTATUS_INFO_LENGTH_MISMATCH zurückgibt, wird dieser Parameter auf die erforderliche Pufferlänge festgelegt.
Rückgabewert
ObQueryNameString gibt STATUS_SUCCESS oder einen NTSTATUS-Wert wie den folgenden zurück:
Rückgabecode | Beschreibung |
---|---|
|
Der Puffer, auf den von ObjectNameInfo verwiesen wird, ist zu klein, um die angeforderten Objektnameninformationen aufzunehmen. ReturnLength zeigt auf die erforderliche Puffergröße. In diesem Fall werden keine Objektnamensinformationen zurückgegeben. Dies ist ein Fehlercode. Beachten Sie, dass STATUS_INFO_LENGTH_MISMATCH zurückgegeben wird, wenn Länge auf 0 festgelegt ist. |
Hinweise
Wenn das angegebene Objekt benannt ist und der Objektname erfolgreich abgerufen wurde, ist die zurückgegebene Zeichenfolge der Name des angegebenen Objekts, einschließlich so viel wie möglich des vollständigen Pfads des Objekts. In diesem Fall legt ObQueryNameStringName.Buffer auf die Adresse des NULL-beendeten Namens des angegebenen Objekts fest. Der Wert von Name.MaximumLength ist die Länge des Objektnamens einschließlich der NULL-Beendigung . Der Wert von Name.Length ist die Länge des einzigen Objektnamens.
Wenn das angegebene Objekt nicht benannt ist oder der Objektname nicht erfolgreich abgerufen wurde, legt ObQueryNameStringName.Buffer auf NULL fest und legt Name.Length und Name.MaximumLength auf Null fest.
Der Speicher für ObjectNameInfo kann aus einem ausgelagerten oder nicht ausgelagerten Pool zugewiesen werden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 |
Zielplattform | Universell |
Header | ntifs.h (include FltKernel.h, Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |