1 VALIDATE Validates the specified item (process, queue, and so forth). 2 PFN_LIST Validates that the page counts on lists are correct. Format VALIDATE PFN_LIST {/ALL (d) | [/BAD | /FREE | /MODIFIED | /PRIVATE | /UNTESTED | /ZERO]} 3 Qualifiers /ALL Validates all the PFN lists: bad, free, modified, untested, zeroed free pages, and private pages. /BAD Validates the bad page list. /FREE Validates the free page list. /MODIFIED Validates the modified page list. /PRIVATE Validates all private page lists. /UNTESTED Validates the untested page list that was set up for deferred memory testing. /ZERO Validates the zeroed free page list. 2 POOL Checks all free pool packets for POOLCHECK-style corruption, using the same algorithm as the system pool allocation routines when generating a POOLCHECK bugcheck and system dump. Format VALIDATE POOL { /ALL (d) | /BAP | /NONPAGED | /PAGED } [ /HEADER | /MAXIMUM_BYTES [=n] /SUMMARY ] 3 Qualifiers /ALL Checks free packets for all pool types (nonpaged pool, paged pool, and bus addressable pool). This is the default. /BAP Checks free packets in bus addressable pool. /HEADER Displays only the first 16 bytes of any corrupted free packets found. /MAXIMUM_BYTES /MAXIMUM_BYTES[=n] Displays only the first n bytes of any corrupted free packets found. If you specify /MAXIMUM_BYTES without a value, the default is 64 bytes. /NONPAGED Checks free packets in nonpaged pool. /PAGED Checks free packets in paged pool. /SUMMARY Displays only a summary of corrupted pool packets found. 2 PROCESS Performs validation of process data structures. Currently, the only validation available is to check free process pool packets for POOLCHECK-style corruption, using the same algorithm as the system pool allocation routines when generating a POOLCHECK bugcheck and system dump. Format VALIDATE PROCESS/POOL [= {P0 | P1 | IMGACT | ALL (d)} ] [/ADDRESS=pcb-address | process-name | ALL | /ID=nn | /INDEX=nn | /NEXT | /SYSTEM] [/HEADER | /MAXIMUM_BYTES[=n] | /SUMMARY] 3 Parameters ALL Indicates that all processes in the system are to be validated. process name Name of the process to be validated. The process name can contain up to 15 uppercase letters, numerals, underscore (_), dollar sign ($), colon (:), and some other printable characters. If it contains any other characters (including lowercase letters), you might need to enclose the process name in quotation marks (" "). 3 Qualifiers /ADDRESS /ADDRESS = pcb address Specifies the process control block (PCB) address of the process to be validated. /HEADER Displays only the first 16 bytes of any corrupted free packets found. /ID /ID = nn /INDEX = nn Specifies the process to be validated by its index into the system's list of software process control blocks (PCBs), or by its process identification. You can supply the following values for nn: o The process index itself. o A process identification (PID) or extended PID longword, from which SDA extracts the correct index. The PID or extended PID of any thread of a process with multiple kernel threads can be specified. Any thread-specific data displayed by further commands is for the given thread. To obtain these values for any given process, issue the SDA command SHOW SUMMARY/THREADS. The /ID=nn and /INDEX=nn qualifiers can be used interchangeably. /MAXIMUM_BYTES /MAXIMUM_BYTES[=n] Displays only the first n bytes of any corrupted free packets found. If you specify /MAXIMUM_BYTES without a value, the default is 64 bytes. /NEXT Causes SDA to locate the next process in the process list and validate that process. If there are no further processes in the process list, SDA returns an error. /POOL /POOL [= {P0 | P1 | IMGACT | ALL (d)} ] (Required) Causes process pool validation to be performed. Use of a keyword on the /POOL qualifier allows the user to specify which process pool is to be validated (P0, P1, Image Activator Pool, or ALL). Default: ALL /SUMMARY Displays only a summary of the corrupted pool packets found. /SYSTEM This qualifier is provided for compatibility with SET PROCESS/SYSTEM and SHOW PROCESS/SYSTEM. There is no pool associated with the system process that can be validated. SDA sets its current process context to the system process and outputs the text: Options ignored for System process: POOL 2 QUEUE Validates the integrity of the specified queue by checking the pointers in the queue. Format VALIDATE QUEUE [address] [/BACKLINK | /LIST | /PHYSICAL | /QUADWORD | /SELF_RELATIVE | /SINGLY_LINKED] 3 Parameter address Address of an element in a queue. If you specify the period (.) as the address, SDA uses the last evaluated expression as the queue element's address. If you do not specify an address, the VALIDATE QUEUE command determines the address from the last issued VALIDATE QUEUE command in the current SDA session. If you do not specify an address, and no queue has previously been specified, SDA displays the following error message: %SDA-E-NOQUEUE, no queue has been specified for validation 3 Qualifiers /BACKLINK Allows doubly linked lists to be validated from the tail of the queue. If the queue is found to be broken when validated from the head of the queue, you can use /BACKLINK to narrow the list of corrupted entries. /LIST Displays the address of each element in the queue. /PHYSICAL Allows validation of queues whose header and links are physical addresses. /QUADWORD Allows the validate operation to occur on queues with linked lists of quadword addresses. /SELF_RELATIVE Specifies that the selected queue is a self-relative queue. /SINGLY_LINKED Allows validation of queues that have no backward pointers. 2 SHM_CPP Validates all the shared memory common property partitions (CPPs) and the counts and ranges of attached PFNs; optionally, it can validate the contents of the database for each PFN. Format VALIDATE SHM_CPP [/qualifiers] 3 Qualifiers /ADDRESS /ADDRESS=n Validates the counts and ranges for a single shared memory CPP given the address of the SHM_CPP structure. /ALL Validates all the shared memory CPPs. This is the default. /IDENT /IDENT=n Validates the counts and ranges for a single shared memory CPP. /PFN Validates the PFN database contents for each attached PFN. The default is all lists (free, bad, untested) plus the PFN database pages and the complete range of PFNs in the CPP. You can limit which lists are validated by specifying one or more keywords from the following table. If you specify multiple keywords, enclose them in parentheses and separate keywords with a comma. ALL_FRAGMENTS Validates the complete range of PFNs in the CPP. BAD Validates only the bad page list. FREE Validates only the free page list. PFNDB Validates the PFNs containing the PFN database. UNTESTED Validates only the untested page list. If you specify the /PFN without /ALL, /IDENT, or /ADDRESS, the system validates the PFN lists from the last shared memory CPP. 2 TQEIDX Validates all the data structures associated with timer queue entry index (TQEIDX) structures. Format VALIDATE TQEIDX