Freigeben über


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
STATUS_INFO_LENGTH_MISMATCH
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

Weitere Informationen

UNICODE_STRING